学生表:
01.png
班级表:
02.png
1.group by + group_concat()
#按照性别分组,把每组包含数据中的name字段显示。
select gender,group_concat(name) from students group by gender;
03.png
2.group by + 聚合函数
#分别统计性别为男/女的人年龄平均值
select gender,avg(age) from students group by gender;
04.png
3.group by + having
having 条件表达式:用来分组查询后指定一些条件来输出查询结果
having作用和where一样,但having只能用于group by
select gender,count(*) from students group by gender having count(*)>2;
05.png
4.group by + with rollup
with rollup的作用是:在最后新增一行,来记录当前列里所有记录的总和
例1:
select gender,count(*) from students group by gender with rollup;
06.png
例2:
select gender,group_concat(age) from students group by gender with rollup;
07.png
5. group by + order by + limit
查找 员工名字中最常见的10个名字。
select first_name, count(first_name) as count from employees group by first_name order by count desc limit 10;
09.png
6. 查找每年给与员工的薪水总额,并且按照高低 进行排序。
-
year函数会返回 给定日期的 年份
select '2020-06-11', year('2020-06-11');
10.png
select year(from_date),sum(salary) as sum from salaries group by year(from_date) order by sum desc;
11.png