今天这篇文章是对比Excel学习SQL系列的第5篇文章,之前3篇的传送门在这里:《计算字段》、《对行和列的操作》、《库/表/记录的增查删改》、《写给小白的SQL学习文章》。
本节内容要用到的数据表:成绩表(sc),学生基本信息表(student1)
一、分组
01 创建分组
group by 命令用来创建分组,分组其实相当好理解,就是Excel里的数据透视表,汇总方式为计数、求和或平均的功能,所以通常和聚合函数结合起来使用。
--语法
select 列,聚合函数 from 表 where子句 group by 列;
Group by 要放在where之后,order by 之前
Q1:统计每个学号(snum)下的人数
用到【group by + count】,对snum学号一列分组并计数,相当于Excel透视表中把snum拖到列标签,同时对snum计数,结果是一样的。
select snum, count(*) from sc group by snum;
同理,你可以试试对cnum和score分组计数是什么结果。
Q2:统计每个学号(snum)下的总成绩
【group by + sum】,结合sum函数,可以统计每个学号的总成绩,Excel里是对score求和。
select snum,sum(score) from sc group by snum;