GROUP BY 两个字段(或者多个字段的时候)

GROUP BY 两个字段(货多个字段的时候)

当group by 一个字段的时候:

group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素:
(1) 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
(2) 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having

那么当group by 后面后两个字段的时候呢?

我们先看表(先不管表设计时候合理,我们是看group by 分出来的结果)

复制代码
CREATE TABLE #TEST(
A VARCHAR(10),
B VARCHAR(10),
C INT
)

INSERT INTO #TEST VALUES(‘A’,‘甲’,1)
INSERT INTO #TEST VALUES(‘A’,‘甲’,1)
INSERT INTO #TEST VALUES(‘A’,‘甲’,1)

INSERT INTO #TEST VALUES(‘A’,‘已’,1)
INSERT INTO #TEST VALUES(‘B’,‘甲’,1)

INSERT INTO #TEST VALUES(‘B’,‘已’,1)
INSERT INTO #TEST VALUES(‘B’,‘已’,1)
INSERT INTO #TEST VALUES(‘B’,‘已’,1)

SELECT A,SUM© FROM #TEST
GROUP BY A
–结果:
/*
A 4
B 4
/
SELECT B,SUM© FROM #TEST
GROUP BY B
–结果:
/

甲 4
已 4
*/
SELECT A,B,SUM© FROM #TEST
GROUP BY A,B

–结果:
/*
A 甲 3
B 甲 1
A 已 1
B 已 3
*/

SELECT A,B,SUM© FROM #TEST
GROUP BY B,A
–结果:
/*
A 甲 3
A 已 1
B 甲 1
B 已 3
*/
复制代码
发现规律没,如果没有,尼玛,再仔细看看!

总结:

GROUP BY A,B

先根据B字段进行分组,如果B能分,A 也能分 就分成同一组

这么说吧

A  B

1   2

1   2

1   3

你可以将A B 看成一个组合字段,如果 A+B 的值能分组 则分为同一组,如果不能,那么就新建一组

明白了吗?
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值