2016-03-14 52 views
0

我有一個「狀態」列的表,它接受TINYINT。例如:選擇某些行的列數作爲列

name | status 
-------+-------- 
john | 0 
joe | 1 
johann | 0 
jan | 1 
jane | 0 

我該如何計算誰是狀態1和誰是狀態0?

status1 | status0 
--------+-------- 
2  | 3 

回答

1

只需使用條件彙總:

select sum(status = 1) as status1, sum(status = 0) as status0 
from t; 

在你的情況,你也可以這樣寫:

select sum(status) as status1, sum(1 - status) as status0 
from t; 
1

我會用一個CASE語句來檢查你的價值。

SELECT SUM(CASE WHEN [status] = 1 THEN 1 ELSE 0 END) AS Status1, 
    SUM(CASE WHEN [status] = 0 THEN 1 ELSE 0 END) AS Status0 
FROM tbl;