本文介紹了如何在SQL中高效地統(tǒng)計(jì)某些列值的出現(xiàn)次數(shù)?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在使用MySQL。
我有一個(gè)service_status
表:
id | service_id | service_status
----------------------------------------------------------------------
0 | 1001 | download_started
1 | 1001 | download_started
2 | 1002 | download_started
3 | 1002 | download_started
4 | 1002 | download_failed
5 | 1003 | download_started
6 | 1003 | download_failed
7 | 1003 | something_else
8 | 1003 | another_thing
我要查詢所有service_id
,以及計(jì)算download_started
和download_failed
的數(shù)目的另外兩列:
id | service id | download_started | download_failed
----------------------------------------------------------------------
0 | 1001 | 2 | 0
1 | 1002 | 2 | 1
2 | 1003 | 1 | 1
我只關(guān)心download_started
或download_failed
的狀態(tài)。
非常感謝。
推薦答案
您可以使用此命令:
SELECT
service_id,
SUM(CASE WHEN service_status = 'download_started' THEN 1 ELSE 0 END) download_started,
SUM(CASE WHEN service_status = 'download_failed' THEN 1 ELSE 0 END) download_failed
FROM
table_name
GROUP BY
service_id
ORDER BY
service_id;
這篇關(guān)于如何在SQL中高效地統(tǒng)計(jì)某些列值的出現(xiàn)次數(shù)?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,