2017-03-16 90 views
1

有了這個表在同一查詢

executing  failed 
0    1 
1    1 

我想獲得多少如何執行和失敗的一個查詢計數兩列。

我知道我可以讓他們在分離querys:

SELECT count(*) executing FROM mytable where executing=1; 
SELECT count(*) failed FROM mytable where failed=1; 

我怎麼怎麼可以得到一個查詢下面的輸出?

executing  failed 
1    2 

在此先感謝

回答

5

如果列只包含01只是總結起來:

 
SELECT SUM(executing) executing, SUM(failed) failed FROM mytable 

編輯:您需要SUM,而不是COUNT因爲別人說,因爲雖然這是真的, COUNT不計數NULL值,它實際上計數整數值0所以它會給你錯誤的結果

+0

也就是說在這種情況下,完全正確的,但可以固定一個case語句,這樣算(案)是一種更一般的方法 – rpd

0
select count(executing), count(failed) from mytable 

始終工作,因爲count(col)不會計算列中的空條目。所以,你不需要和,你可以倍數列總是指望用

count(col) 

不管列數據類型