【发布时间】:2014-02-15 11:13:55
【问题描述】:
我有这种形式的表格数据。
it w count
i1 a 2
i1 b 3
i2 a 1
i3 c 2
i4 b 1
当我为每个项目(它)和相应的计数查询 a-b 对时。如果某个项目(它)没有 a 和 b,那么它会被忽略(如 i3)。我需要表单中的输出
it a b
i1 2 3
i2 1 0
i4 0 1
任何想法如何解决这个问题? 而且我不能将每个单词存储在不同的列中。单词很多,mXn矩阵是稀疏的。
根据 Saharsh 的回答,我们可以这样做
SELECT * FROM (SELECT a.it, SUM(CASE WHEN a.w = 'a' THEN a.count ELSE 0 END) AS a,
SUM(CASE WHEN a.w = 'b' THEN a.count ELSE 0 END) AS b
FROM tableA a WHERE a.w IN ('a', 'b') GROUP BY a.it) WHERE a>0 OR b>0
有没有更好的方法来处理百万行数据?
【问题讨论】:
标签: mysql sql select group-by pivot