五、分组查询
1.
统计每个院系有多少人
-- select 后面的列名要和group by 后面的列名要一致,名称一致、列数一致
SELECT college, count(stu_id)
FROM t_student
GROUP BY college;
2.
统计男、女生各有多少人
SELECT gender,COUNT(stu_id)
FROM T_STUDENT ts
GROUP BY GENDER;
3.
统计每个院系有多少人并按人数进行排序
SELECT college, count(stu_id)
FROM T_STUDENT
GROUP BY college
ORDER BY count(stu_id);
4.
统计各院系的平均分数
SELECT college, avg(score)
FROM T_STUDENT
GROUP BY college;
5.
统计各院系各专业的平均分数
-- select 后面的列名要和group by 后面的列名要一致,
-- 名称一致、列数一致、顺序一致
SELECT college, major, avg(score)
FROM T_STUDENT
GROUP BY college, major;
6.
统计各院系的平均分数,并按平均分排序
SELECT college, avg(score)
FROM T_STUDENT
GROUP BY college
ORDER BY avg(score) DESC;
(二)对查询之后的结果进行过滤,不能使用where关键字 . 要使用having关键字;having关键字是在分组后进行使用
7.
统计各院系的人数,只显示人数在
2
人以上的院系
SELECT college, count(stu_id)
FROM T_STUDENT
GROUP BY college HAVING count(stu_id) > 2;
8.
统计各省份的人数,只显示人数在
2
人以上的信息
SELECT province, count(stu_id)
FROM T_STUDENT
GROUP BY province HAVING count(stu_id) >= 2;
9.
统计各院系的平均分数,只统计人数在
2
人以上的院系。
SELECT college,AVG(score),COUNT(stu_id)
FROM T_STUDENT ts
GROUP BY COLLEGE
HAVING COUNT(stu_id)>2;
10.
统计辅导员所带学生人数,显示人数在
2
人以上的结果, 只统计通信与信息工程学院和数字经济与信息管理学院的数据,按人数倒序显示
SELECT MENTOR,college,COUNT(stu_id)
FROM T_STUDENT ts
WHERE college='通信与信息工程学院'or college='数字经济与
信息管理学院'
GROUP BY MENTOR ,COLLEGE
HAVING COUNT(STU_ID)>2
ORDER BY COUNT(STU_ID) DESC;