這應該很容易,但我還沒有找到答案。我有一個正在運行一個計數的查詢,並且我想在查詢中將其分組到State = 1和State <> 1並且爲每個組計算總和。MySQL組通過查詢X或不是X
SELECT count(`id_job`) as count, `state`
FROM job_table
GROUP BY `state`;
這應該很容易,但我還沒有找到答案。我有一個正在運行一個計數的查詢,並且我想在查詢中將其分組到State = 1和State <> 1並且爲每個組計算總和。MySQL組通過查詢X或不是X
SELECT count(`id_job`) as count, `state`
FROM job_table
GROUP BY `state`;
您可以通過它也查詢布爾表達式和組:
SELECT state = 1, COUNT(*)
FROM job_table
GROUP BY state = 1
試試這個
SELECT SUM(CASE WHEN State=1 THEN 1 END) as count1,
SUM(CASE WHEN State<>1 THEN 1 END) as count2,
State
FROM job_table
GROUP BY state
SELECT count(id_job) as count,state FROM job_table
GROUP BY case when state = 1 then 1 else 0
在MySQL中,你可以很容易地把這些成列:
select sum(state = 1) as state_1,
sum(state <> 1) as state_2
from job_table;
如果state
可以是NULL
,那麼您想要小心一點。第二個條件更安全,因爲:
select sum(state = 1) as state_1,
sum(not state <=> 1) as state_2
from job_table;
一旦我包含了一些其他查詢要求,這個效果最好。 – Richard