2012-05-15 57 views
1

我怎樣才能得到這個查詢是在正確的語法? (MySQL)SQL同列刪除

謝謝。

SELECT (count(a) WHERE a = 1)-(count(a) WHERE a = 0) FROM table 
+1

實際上,在這種情況下,sum(a)可以自行工作,我想。 –

+1

我也這麼想過,但會嗎?如果5行中的a = 0,6行中a = 1,則SUM(a)會給你6,而@Jonas的答案會給你1.你要找哪個結果? – bfavaretto

+1

瑞克,你看到SUM而不是COUNT。現在,假設a只取0和1的值,上面的結果相當於2 * sum(a) - count(*)。我們稱之爲一個有趣的觀察。 –

回答

4

試試這個。

SELECT SUM(CASE WHEN a=1 THEN 1 ELSE 0 END)- SUM(CASE WHEN a=0 THEN 1 ELSE 0 END) AS Result FROM table 
+0

我認爲這是答案,但它給我一個語法錯誤。 CASE在mysql中工作嗎? –

+0

絕對如此。在這裏閱讀參考。 http://dev.mysql.com/doc/refman/5.0/en/case-statement.html –

+1

對不起,我的錯誤。有兩個失蹤的右括號。我簡化了它。 –