数据库数据库

SQL之GROUP BY & HAVING

2017-03-18  本文已影响249人  _Nullptr

聚合函数

From CSDN 叶子

一、Sql Server 中有哪些聚合函数?

提到聚合函数大家一定会首先想到最常用的:
1、 求个数:count
2、 求总和:sum
3、 求最大值:max
4、 求最小值:min
5、 求平均值:avg

聚合函数中有四个函数是我一直以来几乎就没有用到过的:
1、 求方差:var
2、 求总体方差:varp
3、 标准偏差:stdev
4、 求总体标准偏差:stdevp

除此以外Sql Server中还有几个集合函数:
1、 求校验和:checksum_agg
2、 求个数:count_big
3、 用于测试 cube 或 rollup 空值:grouping

二、聚合函数在什么情况下使用?

聚合函数只能在以下位置作为表达式使用:
1、 select 语句的选择列表(子查询或外部查询)。
2、 compute 或 compute by 子句。
3、having 子句。

三、聚合函数count和count_big的区别?

count_big的用法与count 函数类似。两个函数唯一的差别是它们的返回值。 
count_big始终返回 bigint 数据类型值。count始终返回 int 数据类型值。


GROUP BY

From cnblogs Myhsg / CSDN 王晓斌 / cnblogs 夕诺

GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用

HAVING

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚集函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

1.执行where子句查找符合条件的数据;
2.使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
3.having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
4.having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
5.having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。

上一篇下一篇

猜你喜欢

热点阅读