数据查询语言SQL之分组查询

分组查询的使用场景为:按照某个指标将信息进行归类。

select 分组字段名,聚合函数 from 表名 where 筛选条件 group by 分组字段 having 筛选条件1;

group by:对过滤完的数据再进行分组归类;分组后会对表中数据折叠,数据分为几组,就会显示几行。

having 筛选条件1: 对归类之后的信息再次进行过滤

聚合函数

1、count:如果没有分组,统计查询结果有几行,如果有分组,统计的每个组内有几行数据。

count(*):统计的数据存在空值也会计数

count(字段名):有空值不计数。

select col_id,count(*) from tb_student group by col_id;
-- 注:tb_student为学生table,col_id为每个学生所属的学院编号。该代码为计算每个学院有多少名学生

 2、sum (字段名):如果没有分组,统计该字段查询结果有几行,如果有分组,统计的该组下对应字段内有几行数据。

elect stu_id,sum(score) from tb_record group by stu_id;-- 计算每个学生的总成绩 

3、avg(字段名):如果没有分组,统计查询结果中该字段的平均值,如果有分组,统计该组下对应字段的数据平均值。

4、max(字段名):如果没有分组,统计查询结果中该字段的最大值,如果有分组,统计该组下对应字段的数据最大值。

5、min(字段名):如果没有分组,统计查询结果中该字段的最小值,如果有分组,统计该组下对应字段的数据最小值。

6、group_concat(字段名):应用于分组后某个字段的数据值是多个的。例如:展示每个学院的学生姓名。

select col_id,group_concat(stu_name) from tb_student group by col_id;

group_concat(字段名 order by 字段名 asc|desc):拼接信息时可以按照数据值排序,asc为升序,desc为降序。 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值