Мне нужна помощь с запросом T-SQL.Я хочу подсчитать поля, которые имеют специальное значение (например,> 1).
Предполагается, что у меня есть таблица типа:
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
Но это невозможно в T-SQL, поскольку Count () не принимает логические значения.Так действительно ли это единственный возможный способ сделать несколько запросов с WHERE Value>1
и COUNT(*)
и присоединиться к ним впоследствии?Или есть хитрость для достижения желаемого результата?
Заранее спасибо.