聚合函数&groupby&having

1.sql语句的聚合函数有:

聚合函数和其他函数的区别是:聚合函数一般作用在多条记录上。

A:Count(coutexpr|distinct coutexpr)用来求有效数据的数量
B:Max(maxexpr|distinct maxexpr)用来求给定数据中最大的那一个数据
C:Min(minexpr|distinct minexpr)用来求给定数据中最小的那一个数据
D:Avg(avgexpr|distinct avgexpr)用来求给定数据的平均值
E:Sum(sumexpr|distinct sumexpr)用来求给定数据的总和
F:Variance(varexpr|distinct varexpr)用来求给定数据的标准差
G:Stddev(stdexpr|distinctstdexpr)用来求给定数据的方差

备注:这些聚合函数一般会和group by一起使用,从而按照给定的数据表列给查询结果集合分组的。

在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
一个必须注意的地方是:SELECT 列表中指定的每一列也必须出现在GROUPBY子句中,除非这列是聚合函数

selectdeptno,sum(sal)fromempwheresal>1200groupbydeptnohavingsum(sal)>8500orderbydeptno;

当在gropuby子句中使用having子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和having子句。having与where子句类似,均用于设置限定条件. where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...