
这个涉及到执行顺序问题,介绍下面:
selectfromwheregroupbyhavingorderby中,首先执行的是from后的语句,说明数据的来源;
-->执行where后的语句,对记录进行初步筛选;
-->执行groupby后的语句,对初步筛选后剩下的字段进行分组;
-->执行having后的语句,对分组后的记录进行二次筛选;
-->执行select后的语句,在二次筛选后的字段中进行选择并显示出来;
-->执行orderby后的语句,对select后的字段进行排序。
group
by
“分组”查询,就是把记录集中的记录按一定规则进行“分组统计”。
假设一个学生名单表,有班级、姓名
,性别
3个字段,
如果想查询每个班有多少个学生:
(这是以“班级”分组统计人数)
select
班级
,count(姓名)
as
数量
from
学生名单表
group
by
班级;
如果出现每个班的男女生数量:(这是以“班级”及“性别”为分组统计人数)
select
班级
,性别,
count(姓名)
as
数量
from
学生名单表
group
by
班级,性别;
1select
DATEPART
(month,OrderDate),Sum(TotalPrice)
from
OrderInfo
where
DATEPART(year,OrderDate)=@year
group
by
DATEPART(month,OrderDate)
2select
DATEPART
(day,OrderDate),Sum(TotalPrice)
from
OrderInfo
where
DATEPART(year,OrderDate)='2010'
and
DATEPART(month,OrderDate)='1'
group
by
DATEPART(day,OrderDate)
感谢影子同学的帮助,问题得到完美解决(^__^)
嘻嘻……
为方便大家查看,我将在sql2005下的解决方法完善了下,当初在网上没有找到⊙﹏⊙b汗
以上就是关于数据库问题全部的内容,包括:数据库问题、数据库 group by的用法,详细点谢谢!、数据库高手们,来帮帮忙等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)