【发布时间】:2016-03-14 08:50:05
【问题描述】:
更新:这是与上一个不同的问题,当我在这个问题中使用 ROLLUP 时,它会添加一个总计行,但我只想要一个 C 组来合并 A 组和 B 组,因此 C 组显示小计颜色 X、Y 和 Z。不需要总行。
我有这样的数据
Group Color Money
A X 100
A X 300
A Y 200
B X 200
B Y 300
B Y 100
B Z 110
我想创建一个包含 A&B 的新 C 组
有没有这样查询mysql中的数据?
Group Color SumMoney AvgMoney DataCount
A X 400 200 2
A Y 200 200 1
B X 200 200 1
B Y 400 200 2
B Z 110 110 1
C X 600 200 3
C Y 600 200 3
C Z 110 110 1
我认为 UNION 可能会解决问题,但它也可能很慢并且语法会很长(更难维护(不是在这种情况下))。有什么建议么?谢谢!
【问题讨论】:
-
与您几小时前的帖子非常相似,stackoverflow.com/questions/35981520/…。
-
与一小时前类似的答案,但
GROUPING SETS而不是ROLLUP -
您甚至没有接受对您之前问题的回答,并且您已经在重新发布它。使用联合,如果它变慢,请发布一个关于提高查询速度的新问题。 “语法会很长”是 SQL 中毫无意义的语句。查询的长度对执行速度没有直接影响。有时,长查询可能是唯一有效且最快的任务。此外,如果您对某事改变主意,您可以编辑一个问题(这应该是这个问题)
-
我知道这有点相似,但这是两个不同的问题,不转发。 ROLLUP 适用于上一个问题。但在这种情况下,将多行显示总计,而不仅仅是小计。感谢您回答我的问题。现在我知道我应该使用 GROUPING SETS。