【发布时间】:2014-11-24 17:42:13
【问题描述】:
想象一下下表:
type cond
A good
A good
A bad
B good
B bad
C good
C bad
D good
D bad
E worse
如果我同时按 type 和 cond 计数和分组,我会得到这个:
count type cond
2 A good
1 A bad
1 B good
1 B bad
1 C good
1 C bad
1 D good
1 D bad
1 E worse
但为了更好地将数据汇总到表格中,我更喜欢这样的结果:
count type cond
2 A good
1 A bad
0 A worse
1 B good
1 B bad
0 B worse
1 C good
1 C bad
0 C worse
1 D good
1 D bad
0 D worse
0 E good
0 E bad
1 E worse
我已经设法将所有现有的types 与所有现有的conds 交叉加入,但我不能再数了。
我还尝试针对所有现有的types 或conds 加入结果,但这也不起作用。
SUM-CASE-WHEN 策略在这里不起作用,因为我想让它动态化,即我不知道会有多少 types 或 conds。
是否有一个简单(甚至复杂)的解决方案来生成分组数据的线性矩阵? (奖励:……或者甚至转置它,即二维矩阵,将一组作为表头?)
【问题讨论】:
-
您有一个父表,其值为“好”、“坏”、“更糟”吗?
-
@JoeTaras:我没有包含所有可能条件的表,但它可以与
SELECT cond FROM table GROUP BY cond动态合成(必要时嵌套) -
好吧,关于标准化,最好有一个包含这些值的表。
标签: mysql sql group-by left-join cross-join