但行好事
莫论前程❤

sql进阶–group by 两个或以上条件

首先group by 的简单说明:

group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素:

  • 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.

  • 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having

下面看下group by多个条件的分析:

在SQL查询器输入以下语句

create table test(
a varchar(20),
b varchar(20),
c varchar(20)
);

insert into test values(1,'a','甲');
insert into test values(1,'a','甲');
insert into test values(1,'a','甲');
insert into test values(1,'a','甲');
insert into test values(1,'a','乙');
insert into test values(1,'b','乙');
insert into test values(1,'b','乙');
insert into test values(1,'b','乙');

第一次查询

select * from test; 结果如下图:

img

结果中

  • 按照b列来分:则是 5个a 3个b.
  • 按照c列来分:则是 4个甲 4个乙.

第二次 按照 b列来分组

代码如下

select   count(a), b from test group by b;

img

第三次 按照 c列来分组

代码如下

select count(a),c from test group by c

img

第四次 按照 b c两个条件来分组

select count(a),b,c from test group by b,c

img

第五次 按照 c b 顺序分组

select count(a),b,c from test group by c,b

img

可以看出 group by 两个条件的工作过程:

  • 先对第一个条件b列的值 进行分组,分为 第一组:1-5, 第二组6-8,
  • 然后又对已经存在的两个分组用条件二 c列的值进行分组,发现第一组又可以分为两组 1-4,5
赞(0) 打赏
未经允许不得转载:刘鹏博客 » sql进阶–group by 两个或以上条件
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏