码迷,mamicode.com
首页 > 数据库 > 详细

sql 学习之 group by 及 聚合函数

时间:2015-06-17 15:11:41      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

1.在使用 GROUP BY 子句时,Select列表中的所有列必须是聚合列(SUM,MIN/MAX,AVG等)或是GROUP BY 子句中包括的列。同样,如果在SELECT 列表中使用聚合列,SELECT列表必须只包括聚合列,否则必须有一个GROUP BY 子句。例如:  

select customerid,salespersonid,count(*)
from sales.salesorderheader 
where customerid <= 11010
group by customerid,salespersonid
order by customerid,salespersonid

2.聚合函数。聚合函数用于GROUP BY 字句,用于聚合分组的数据。聚合函数在和GROUP BY子句一起使用时显示出其强大的功能。但聚合函数的使用不限于分组查询;如果查询语句中使用了聚合函数,而没使用GROUP BY子句,则聚合函数是用于聚合整个结果集(匹配WHERE子句的所有行)。当不使用GROUP BY 子句时,在SELECT列表中某些聚合函数只能与其他的聚合函数一起使用,即聚合函数必须使用GROUP BY 子句才能在SELECT列表中与列明配对。例如,不使用GROUP BY子句,SELECT列表中AVG只能和SUM对应,但不能对应特定列。

3.AVG

 AVG函数用于计算平均值。

 For example:  

select salesorderid,avg(orderqty) as orderqtyavg
from sales.salesorderdetail
where salesorderid in (43660,43670,43672)
group by salesorderid

4.MIN/MAX

   顾名思义,MIN/MAX用于计算所选择列分组的最小值与最大值。

   For example:   

select salesorderid,min(orderqty) as orderqtyavg
from sales.salesorderdetail
where salesorderid in (43660,43670,43672)
group by salesorderid

在将查询改为Max函数,For example:

select salesorderid,max(orderqty) as orderqtyavg
from sales.salesorderdetail
where salesorderid in (43660,43670,43672)
group by salesorderid

5.

5.

sql 学习之 group by 及 聚合函数

标签:

原文地址:http://www.cnblogs.com/caishuhua226/p/4583129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!