資料表
ID O1 O2 O3
ID1 1 1 0
ID2 1 0 1
ID3 0 1 1
單查詢取得各欄位計數
SELECT
SUM(CASE WHEN O1 = 1 THEN 1 ELSE 0 END) AS cnt_O1,
SUM(CASE WHEN O2 = 1 THEN 1 ELSE 0 END) AS cnt_O2,
SUM(CASE WHEN O3 = 1 THEN 1 ELSE 0 END) AS cnt_O3,
COUNT(*) AS total_rows
FROM TableName;
輸出範例
cnt_O1 cnt_O2 cnt_O3 total_rows
2 2 2 3
若需只統計特定 ID 群組
SELECT
ID,
SUM(CASE WHEN O1 = 1 THEN 1 ELSE 0 END) AS cnt_O1,
SUM(CASE WHEN O2 = 1 THEN 1 ELSE 0 END) AS cnt_O2,
SUM(CASE WHEN O3 = 1 THEN 1 ELSE 0 END) AS cnt_O3
FROM TableName
GROUP BY ID;