SQL SELECT查询语句 聚合函数
聚合函数 |
---|
COUNT(*) 计算元组的个数 |
COUNT(列名) 对一列中的值计算个数 |
SUM(列名) 求某一列数值的总和(该列元素必须为数值型) |
AVG(列名) 求某一列的平均值(该列元素必须为数值型) |
MAX(列名) 求某一列的最大值 |
MIN(列名) 求某一列的最小值 |
例1 求男同学的总人数和平均年龄
SELECT COUNT(*),AVG(AGE)
FROM S
WHERE SEX = 'M';
例2 统计选修了课程的学生人数
SELECT COUNT(DISTINCT S#) //学号不重的情况下做COUNT
FROM SC
例1 统计每门课程的学生选修人数,显示课程号、课程名和学生人数
SELECT C.C#, C.CNAME, COUNT(S#) AS CNT
FROM C, SC
WHERE C.C# = SC.C#
GROUP BY C.C#, CNAME;
(显示出来的,要么是聚合函数出来的,要么是GROUP BY出来的,否则会报错)
例2 求基本表S中男同学每一年龄组有多少人,要求查询结果
按人数升序排序,人数相同按年龄降序排列。
SELECT AGE, COUNT(S#) AS CNT
FROM S
WHERE SEX = 'M'
GROUP BY AGE
ORDER BY CNT, AGE DESC; //按人数升序排序,人数相同按年龄降序排列