2009-01-28 143 views
0

我有如下表:如何彙總列從兩個結果集在MySQL

評級:

ID | post_id | rating_type 

的rating_type字段是「拇指向上」或「拇指向下」。我想得到一個結果集,告訴我最高評分的帖子是什麼。以下查詢爲我提供了一個結果集,其中包含每個唯一post_id的最多投票數。

SELECT COUNT(post_id) as number_up, post_id FROM wp_sp_post_ratings WHERE rating_type = 'thumb-up' GROUP BY post_id 

太棒了!我可以做類似的拇指向下評級類型。但是,我需要的是獲得總評分,其中每個拇指向下提供一個點,每個拇指向下給出一個負面點。然後,我需要按總評分排序。所以說,我們有以下幾點:

後1有3張選票和2倒票 後2有14張選票和33向下票 後3有4向上票,0向下票

我d喜歡看到如下結果集:

post_id | total_rating 
3 | 4 
1 | 1 
2 | -19 

我不知道該怎麼做。我一直對我的文檔和Google的頭撞了大約2個小時,所以我希望SO可以成爲我的救星。

回答

4
SELECT SUM(CASE WHEN rating_type = 'up' THEN 1 WHEN rating_type = 'down' THEN -1 END CASE) 
FROM posts 
GROUP BY post_id 

P. S.最好將票數上下調整爲數字(+1和-1)而不是字符串。

+0

正是我所需要的。非常感謝! – nickohrn 2009-01-28 20:20:56

0

最初,爲什麼不直接豎起拇指爲1,拇指向下直到-1? Quassnoi的案件陳述更快....

+0

這兩個提示都太遲了...... – 2009-01-28 20:23:02