我需要一些T-SQL查詢的幫助。我要計算具有特殊值的字段(例如> 1)。T-SQL計算具有特定值的行(多個在一個查詢中)
假設我有一個表,如:
IGrp | Item | Value1 | Value2
#############################
A | I11 | 0.52 | 1.18
A | I12 | 1.30 | 0.54
A | I21 | 0.49 | 2.37
B | I22 | 2.16 | 1.12
B | I31 | 1.50 | 0.28
我要像一個結果:
IGrp | V1High | V2High
######################
A | 1 | 2
B | 2 | 1
在我看來這應該是與這個表達式去
SELECT IGrp, COUNT(Value1>1) AS V1High, COUNT(Value2>1) AS V2High
FROM Tbl GROUP BY IGrp
但是,這因爲Count()不採用布爾值,所以在T-SQL中不可能。 那麼它真的是唯一可能的方式來做WHERE Value>1
和COUNT(*)
多個查詢,然後加入它們嗎?還是有一個技巧來實現預期的結果?
在此先感謝。
任何想法如何影響性能? – BrianFinkel 2011-11-07 02:33:05
根據我的經驗,SQL Server可以很好地使用這個命令。 – jing 2012-09-18 09:46:53