前言
1、group by 分组子语句
注意1:按某列分组后,该列信息相同的为一组,按照组显示数据,即有几组结果中显示几条数据
注意2:分组时,select显示的字段有约束条件,一般为以下两类:
①必须要有分组组名;
②后接聚合函数:例如求和sum(),求平均avg(),最大最小值max()/min(),计个数count(*)。
select 字段名 聚合函数 from 表名 group by 字段名
举个栗子:查询不同班级的学生个数
select classid '班级',count(*) '个数' from student group by classsid
结果为:
班级 个数
1 2
2 2
2、having 分组过滤子语句
注意与where的区别:
where是对每一条记录直接过滤筛选
having是对分组后的各组进行过滤筛选
select 字段名 聚合函数 from 表名 group by 字段名 having 筛选条件
举个栗子:查询班级人数大于0的班级及其学生个数
select classid '班级',count(*) '个数' from student group by classid having count(*) > 0
结果为:
班级 个数
1 2
2 2
3、order by 排序
注意:升序(默认)asc,降序desc
select 字段名 from 表名 order by 字段名
举个栗子:查询所有学生信息,并按班级号进行排序
select * from student order by classid
结果为:
id name classid
1 张三 1
3 王五 1
2 李四 2
4 赵六 2