例如,我有这样的数据:
Group Money
A 100
A 200
B 100
B 300
B 110
Run Code Online (Sandbox Code Playgroud)
我想使用GROUP BY(其他东西)来总结我的数据,如下所示:
Group Money Average Count
A 300 150 2
B 510 170 3
C 810 162 5
Run Code Online (Sandbox Code Playgroud)
哪个C组表示A组和B组
有没有办法以某种简单的方式得到结果?
Luk*_*der 16
你要找的是一个ROLLUP.这可以通过不同的方式完成,具体取决于您使用的数据库:
这也在SQL标准中指定:
SELECT COALESCE("Group", 'C'), SUM(Money), AVG(Money), COUNT(*)
FROM t
GROUP BY ROLLUP ("Group")
Run Code Online (Sandbox Code Playgroud)
SELECT COALESCE(`Group`, 'C'), SUM(Money), AVG(Money), COUNT(*)
FROM t
GROUP BY `Group` WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)
SELECT "Group", SUM(Money), AVG(Money), COUNT(*)
FROM t
GROUP BY "Group"
UNION ALL
SELECT 'C', SUM(Money), AVG(Money), COUNT(*)
FROM t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |