[英]How to Sum Columns From Two Result Sets in 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反對票
我希望看到如下結果集:
post_id | total_rating
3 | 4
1 | 1
2 | -19
我不知道該怎么做。 大約2個小時以來,我一直在與文檔和Google交流,我希望SO可以成為我的救星。
SELECT SUM(CASE WHEN rating_type = 'up' THEN 1 WHEN rating_type = 'down' THEN -1 END CASE)
FROM posts
GROUP BY post_id
PS最好以數字(+1和-1)而不是字符串來保持上下投票。
最初,為什么不直接將大拇指存儲為1並將大拇指存儲為-1? Quassnoi的案件陳述速度更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.