group by 的简单说明: group by 通常和聚合函数一块儿使用才有意义,好比 count sum avg等函数
使用group by的两个要素:
(1) 出如今select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
(2) 要筛选结果 能够先使用where 再用group by 或者先用group by 再用having测试
下面看下 group by多个条件的分析:3d
---------- 测试数据初始化 begin --------------------blog
在SQL查询器输入如下语句table
create table test1
(
a varchar2(20),
b varchar2(20),
c varchar2(20)
);
insert into test1 values(1,'a','甲');
insert into test1 values(1,'a','甲');
insert into test1 values(1,'a','甲');
insert into test1 values(1,'a','甲');
insert into test1 values(1,'a','乙');
insert into test1 values(1,'b','乙');
insert into test1 values(1,'b','乙');
insert into test1 values(1,'b','乙');test
---------- 测试数据初始化 end--------------------select
第一次查询im
select * from test1; 结果以下图:d3
结果中 按照b列来分:则是 5个a 3个b. 按照c列来分:则是 4个甲 4个乙.数据
第二次查询 按照 b列来分组 代码以下
select count(a),b from test1 group by b;
第三次 按照 c列来分组 代码以下
select count(a),c from test1 group by c;
第四次 按照 b c两个条件来分组
select count(a),b,c from test1 group by b,c;
能够看出 group by 两个条件的工做过程:
先对第一个条件b列的值 进行分组,分为 第一组:1-5, 第二组6-8,
而后又对已经存在的两个分组用条件二 c列的值进行分组,发现第一组又能够分为两组 1-4,5
第五次 按照 c b 顺序分组
select count(a),b,c from test1 group by c,b;