sql语句学习03-聚合函数
升序order by
– 查询学生成绩,要求按照成绩由低到高(升序)
-- 默认升序order by ...desc
-- 查询学生成绩,要求按照成绩由低到高(升序)
SELECT * FROM sc ORDER BY grade
降序order by … desc
– 查询学生成绩,要求按照成绩由高到低(降序)
-- 查询学生成绩,要求按照成绩由高到低(降序)
SELECT * FROM sc ORDER BY grade DESC
COUNT(*)和COUNT(sno)统计行数
– 查询学生总人数
-- COUNT(*) 统计一个表的行数
-- 查询学生总人数
SELECT COUNT(*) FROM stu;
– 查询选修了课程的学生人数
-- COUNT(sno) 一个表sno值的个数 (不为空)
-- 查询选修了课程的学生人数
SELECT COUNT(DISTINCT sno) FROM sc;
-- 查询选修课程的成绩数
SELECT COUNT(grade) FROM sc
SUM(expr) 求和
– 查询选修表中的成绩和
-- SUM(expr) 求和
SELECT SUM(grade) FROM sc;
AVG(expr) 平均值
– 查询选修‘20201’课程的学生平均成绩
-- AVG(expr) 平均值
-- 查询选修‘20201’课程的学生平均成绩
SELECT AVG(grade) FROM sc WHERE cno='20201';
MAX(expr) 最大值
– 查询选修‘20201’课程的学生最高成绩
-- MAX(expr) 最大值
-- 查询选修‘20201’课程的学生最高成绩
SELECT MAX(grade) FROM sc WHERE cno='20201'
MIN(expr) 最小值
– 查询选修‘20201’课程的学生最低成绩
-- MIN(expr) 最小值
SELECT MIN(grade) FROM sc WHERE cno='20201';
GROUP BY …(having)
– 求各个课程号以及相应的选修人数
-- GROUP BY
-- 求各个课程号以及相应的选修人数
SELECT cno,COUNT(sno) as num FROM sc GROUP BY cno;
– 求平均成绩大于等于90的学生学号和平均成绩
where之后不能加聚合函数条件,可用group by … having
-- 求平均成绩大于等于90的学生学号和平均成绩
SELECT sno,AVG(grade) FROM sc GROUP BY sno HAVING AVG(grade)>=90;