2012-02-05 54 views
1

我有這樣獲取單個查詢列

C1 C2 
    1  0 
    1  1 

表我想要的行數,其中C1 = 1和行數,其中C2 = 0在一個單一的查詢,而不是單獨的查詢。

回答

2
select 
    sum(case c1 when 1 then 1 else 0 end) Count_c1, 
    sum(case c2 when 0 then 1 else 0 end) Count_c2 
from YourTable 
+0

這看起來要複雜得多噪音的答案,但有可能使數據庫在一個較小的工作足跡。 – Per 2012-02-05 14:02:32

+0

@OlegDok,在這個問題要小心John:http://stackoverflow.com/questions/9149759/multiply-combination-of-columns-based-on-a-column-value。在其他問題中查看OP評論。你知道有沒有辦法用這種用戶來對待?對於溝通渠道抱歉,但我不知道這種情況下與其他用戶聯繫的正確方式是什麼。問候。 – danihp 2012-02-05 14:11:44

+0

@Per它的不同的查詢和噪聲的返回兩列與兩列 - 每個結果在其行,而我的返回一列與兩列 – 2012-02-05 14:27:03

1

可以使用UNION關鍵字:

SELECT "ones", COUNT(*) WHERE c1=1 
UNOIN 
SELECT "zeroes", COUNT(*) WHERE c2=0