tblticket簡化SQL查詢到SQL語句
ID發佈狀態
1測試1
2測試2
3測試3
我想找到指望基於狀態1, 2,3等
我寫了3條sql語句如下
從票SELECT COUNT(*)其中,從票狀態= 1個
SELECT COUNT(*)其中,從票狀態= 2
SELECT COUNT(*),其中狀態= 3
任何方式來簡化成單個此查詢
tblticket簡化SQL查詢到SQL語句
ID發佈狀態
1測試1
2測試2
3測試3
我想找到指望基於狀態1, 2,3等
我寫了3條sql語句如下
從票SELECT COUNT(*)其中,從票狀態= 1個
SELECT COUNT(*)其中,從票狀態= 2
SELECT COUNT(*),其中狀態= 3
任何方式來簡化成單個此查詢
簡單的答案是
select count(*), status
from ticket
group by status
然而,這給了不同的結果,如果你有一個狀態沒有行,因爲行爲記錄在這裏:Does COUNT(*) always return a result?
假設只有3個狀態值,你可以這樣做:
select count(t.status), s.status
from
(SELECT 1 AS status UNION ALL SELECT 2 UNION ALL SELECT 3) s
LEFT JOIN
ticket t ON s.status = t.status
group by
s.status
..或用一個單獨的狀態查找表:
select count(t.status), s.status
from
(SELECT DISTINCT status FROM status) s
LEFT JOIN
ticket t ON s.status = t.status
group by
s.status
SELECT status, COUNT(*)
FROM tblticket
GROUP BY status
如果你真的只希望這三個狀態,你也可以這樣做:
SELECT status, COUNT(*)
FROM tblticket
WHERE status IN (1, 2, 3)
GROUP BY status
哈,由0:20有我!爆炸我的緩慢連接:) – Yuck