通过groud by 语句可以给结果集进行分组。
函数是处理查询结果的方法。
组函数(多行函数):对结果集的每一组都进行运算,得到一个值。(除了空值,若要处理组中的空值可以使用 nvl 函数)
1、常用组函数
avg(number),求这组数据的平均数。
sum(number),求这组数据的和。
min(参数),求这组数据的最小值。如果是字符串则按照a-z进行排序。
max(参数),求这组数据的最大值。
count(*),获取这组数据的行数,包括空值存在的行。
count(列名),获取组中指定列的值不为空值的行数。
count(distinct(列名)),获取组中指定列的值不为空值,且不重复的行数。
若要在结果集中显示单独列和组函数运算结果,则这个列必须为分列的条件。
2、group by创建组
例子:查询学生的班级,以及班级对应的学生数量。
select student_classroom,count(student_name) from students group by student_classroom
注意:要是某个列和组函数同时显示在结果集中,列必须作为分组条件。否则执行失败。
3、having语句过滤组中的数据
对组中数据再进行过滤,作用与where一样。一般having在group by语句后。
例子:查询学生的班级,以及班级中大于60分的学生数量,只显示数量大于5的班级。
select student_classroom,count(student_name) from students where student_scores > 60 group by student_classroom having count(student_name) >5
标签:多行,count,组中,函数,这组,空值,student,SQL From: https://www.cnblogs.com/lurenjia-bky/p/16979505.html