数据库group by 两个或以上条件的分析

今天在测试的时候看到了这个东西,平时的时候我们都是使用一个就好了,就是分组显示。突然间的分类了很多种,让我晕了,但是性质还是一样的,就当事一个复习吧!经验的积累。我就是找了别人写的例子,非常的清楚,所以就拿过过来啦!、

  • 首先group by 的简单说明:

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

  1. 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
  2. 要筛选结果 可以先使用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技能

实习还是可以的!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值