GROUPBY两个字段(或者多个字段的时候)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
groupby分组1 2
1 2
1 3
你可以将A B 看成⼀个组合字段,如果 A+B 的值能分组 则分为同⼀组,如果不能,那么就新建⼀组明⽩了吗?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论