今天在测试的时候看到了这个东西,平时的时候我们都是使用一个就好了,就是分组显示。突然间的分类了很多种,让我晕了,但是性质还是一样的,就当事一个复习吧!经验的积累。我就是找了别人写的例子,非常的清楚,所以就拿过过来啦!、
- 首先group by 的简单说明:
group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素:
- 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
- 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having
example:
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
结果中 按照b列来分:则是 5个a 3个b.
按照c列来分:则是 4个甲 4个乙.
- 第二次 按照 b列来分组 代码如下
select count(a),b from test group by b
- 第三次 按照 c列来分组 代码如下
select count(a),c from test group by c
第四次 按照 b c两个条件来分组
这个时候其实就是我们的bc两个不同的组合,很多类吧!
select count(a),b,c from test group by b,c
第五次 按照 c b 顺序分组
select count(a),b,c from test group by c,b
其实我们可以看出来啦,这些分组有点向我们的组合数,但是又有区别的。反正就是非常的像吧,看你怎么像这个问题啦,哈哈!get技能
实习还是可以的!