Ich brauche Hilfe mit einer T-SQL-Abfrage. Ich möchte Felder mit einem bestimmten Wert zählen (z. B.> 1).T-SQL Zählt Zeilen mit bestimmten Werten (Mehrere in einer Abfrage)
Angenommen, ich habe eine Tabelle wie:
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
ich ein Ergebnis wie wünschen:
IGrp | V1High | V2High
######################
A | 1 | 2
B | 2 | 1
In meinem Kopf soll
SELECT IGrp, COUNT(Value1>1) AS V1High, COUNT(Value2>1) AS V2High
FROM Tbl GROUP BY IGrp
mit diesem Ausdruck geht Aber das ist in T-SQL nicht möglich, da Count() keine booleschen Werte verwendet. Also ist es wirklich die einzige Möglichkeit, mehrere Abfragen mit WHERE Value>1
und COUNT(*)
zu machen und sie danach zu verbinden? Oder gibt es einen Trick, um das gewünschte Ergebnis zu erzielen?
Vielen Dank im Voraus.
Irgendeine Idee, wie dies die Leistung beeinflusst? – BrianFinkel
Basierend auf meiner Erfahrung kann SQL Server mit diesem Befehl gut arbeiten. – jing