2014-04-22 34 views
1

我有MySQL表这样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中实现这一点?

感谢您的帮助。

+1

有多少额外/类型的限制,你可以有? – Prix

+0

在**类型**中有1-4个,在**额外**中有0-2个。 – Gomi

回答

3

如果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_id 

Fiddle Demo

+1

我有更多的价值观,但我会改变它。非常感谢你。 – Gomi