Ich erstelle eine Abfrage mit einer GROUP BY
Klausel, die die Fähigkeit benötigt, Datensätze nur basierend auf einer bestimmten Bedingung zu zählen (z. B. nur Datensätze zählen, bei denen ein bestimmter Spaltenwert gleich 1 ist).
SELECT UID,
COUNT(UID) AS TotalRecords,
SUM(ContractDollars) AS ContractDollars,
(COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1
FROM dbo.AD_CurrentView
GROUP BY UID
HAVING SUM(ContractDollars) >= 500000
Die COUNTIF()
Zeile schlägt offensichtlich fehl, da keine native SQL-Funktion aufgerufen COUNTIF
wird. Hier geht es jedoch darum, den Prozentsatz aller Zeilen zu bestimmen, die den Wert '1' für MyColumn haben.
Überlegen Sie, wie Sie dies in einer MS SQL 2005-Umgebung ordnungsgemäß implementieren können?
ISNULL
, stattdessen können Sie dies tunCASE WHEN myColumn IS NULL
oder verwendenifnull
( stackoverflow.com/a/799406/1861346 )