簡體   English   中英

如何在MySQL中從兩個結果集中求和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM