聚集函数
聚集函数用于分析数据, 常见聚集函数有:
COUNT()
计数MIN()
最小值(包括日期,数值等)MAX()
最大值AVG()
平均数SUM()
求和
列名前加DESTINCT
关键字时只计算不重复的值
列名为*
时指所有列
分组
使用分组, 可以将数据分为几组分别做聚集(分别计数, 分别求平均等)
SELECT ...
FROM ...
GROUP BY 列名
HAVING 条件
GROUP BY根据给定列名中元素的值, 每个不同的值作为一个分组.
HAVING子句用来过滤分组(与之相对应的, WHERE用来过滤行, 两者不能混淆).
HAVING子句尽量只用于聚合函数
多表分组查询
SELECT中的字段要么是聚集函数, 要么在GROUP BY中, 否则会出错.
--TODO 待分析
--统计每门课程的选课人数和最高成绩。
SELECT Cname, COUNT(*) AS '人数', MAX(Grade) AS '最高分'
FROM SC a, Course b
WHERE a.Cno=b.Cno
GROUP BY Cname;