mysql實現同一張表內,統計不同條件的數據

想要同時統計bug表的激活bug數量,與已完成bug數量。
SELECT p.name ‘所屬項目’, COUNT(b.status) ‘激活狀態BUG總數’
FROM zt_bug b ,zt_project p WHERE b.project IN (464,465,466) AND p.id=b.project AND b.status=’active’
GROUP BY project;

SELECT p.name ‘所屬項目’, COUNT(b.status) ‘已解決狀態BUG總數’
FROM zt_bug b ,zt_project p WHERE b.project IN (464,465,466) AND p.id=b.project AND b.status=’resolved’
GROUP BY project;

失敗的嘗試:
SELECT p.name ‘所屬項目’,COUNT(b.status = ‘active’) ‘激活狀態安全BUG總數’,COUNT(b.status = ‘resolved’) ‘已解決狀態安全BUG總數’
FROM zt_bug b,zt_project p
WHERE b.project IN (464, 465, 466)
AND p.id = b.project
GROUP BY project ;

解決方法:
mysql提供if函數,可以在查詢是使用。
SELECT p.name ‘所屬項目’,
SUM(
IF((b.status=’active’),1,0)
) ‘激活狀態安全BUG總數’,
SUM(
IF((b.status=’resolved’),1,0)
) ‘已解決狀態安全BUG總數’
FROM zt_bug b ,zt_project p WHERE b.project IN (464,465,466) AND p.id=b.project
GROUP BY project;

發佈了38 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章