我有这样的MySQL桌子
ID |user_id |type |extra
---------------------------------------------
1 |1 |1 |0
2 |2 |1 |0
3 |2 |1 |2
4 |1 |1 |2
5 |1 |2 |0
6 |1 |1 |2
7 |2 |2 |2
8 |3 |1 |0
9 |2 |2 |2
10 |2 |2 |0我需要通过user_id来计算输出,比如:
user_id |one_noextra |one_twoextra |two_noextra |two_twoextra
---------------------------------------------------------------------
1 |1 |2 |1 |0
2 |1 |1 |1 |2
3 |1 |0 |0 |0(我不知道,如果我数得对,但我希望你明白这一点。)
在MySQL中有实现这一目标的方法吗?
谢谢你的帮助。
发布于 2014-04-22 16:00:13
如果type,extra是有限的,则查看示例数据集,即类型只能有(1,2),而extra只能有(0,2),您可以这样做,使用表达式的总和将根据表达式的结果将结果变为0或1,并相应地进行计数。
SELECT
user_id,
SUM(`type`=1 AND `extra`=0) one_noextra,
SUM(`type`=1 AND `extra`=2) one_twoextra,
SUM(`type`=2 AND `extra`=0) two_noextra,
SUM(`type`=2 AND `extra`=2) two_twoextra
FROM Table1
GROUP BY user_idhttps://stackoverflow.com/questions/23224392
复制相似问题