嗨我想寫一個SQL語句,返回從同一個表,但具有不同的WHERE子句計數和計數(不同)。如何在同一個SQL中使用不同的WHERE編寫COUNT和DISTINCT?
例如
People
-----------------------
ID Name Sex
1 Alex F
2 Alex M
3 Alex M
4 Andy F
5 Andy M
6 Ann F
7 Ann F
在這個例子中,我可以寫SELECT (SELECT COUNT(1) FROM People), (SELECT COUNT(DISTINCT Name) FROM People)
,但那只是太多的選擇。所以我寫SELECT COUNT(1), COUNT(DISTINCT Name) FROM People
。
但是如果我想返回類似SELECT (SELECT COUNT(1) FROM People), (SELECT COUNT(DISTINCT Name) FROM People WHERE Sex='M')
的東西。你如何像上面一樣做少SELECT?
我不知道這是否是相關的,我知道我可以寫一些像SELECT COUNT(1), SUM(CASE WHEN Sex='M' THEN 1 ELSE 0 END) FROM People
在一個SELECT中有不同的WHERE子句,但那只是COUNT,它不處理DISTINCT。當需要DISTINCT時,你如何使用它?
數據庫是SQL Server 2008 R2中,謝謝您
您在查詢中發佈的樣本數據表'人名'的期望輸出是什麼? –
我很想知道爲什麼你特別需要減少SELECT語句的數量?使用多個語句是否有性能問題? – Tony