聚合函数和分组数据-GROUP BY、HAVING
聚合函数
聚合函数是处理多行数据并返回一个值。聚合函数有count、min、max、avg、sum
- count()括号内如果是*,会统计所有行,如果是具体的列名,会忽略为null的行
- DISTINCT关键字和ALL关键字,前者会忽略重复的值,后者是默认(DISTINCT是写在列名前,不能用于*)
- 单条sql语句可以有多个聚合函数
分组数据-GROUP BY
聚集函数往往和分组结合一起使用,用了group by后,聚集函数就是以不同组为单位进行计算,而不是只返回一个值。
- group by出现在where之后,order by 之前
- null值会作为一个分组
select username,sum(money) from account group by username
首先是account表,然后根据名字将account表分组,最后对每个组使用聚合函数sum,每个组返回一个值
分组数组-过滤分组-HAVING
where是以行为单位过滤,having是以组为单位过滤,having可以接的条件与where相同,having是和group by组合使用的。