聚合函数和分组数据-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组合使用的。

上一篇:count(*)和count(具体的某个字段),他们有什么区别? group by 和 having


下一篇:hive的查询语法