Bedingte Zählung und WHERE-Klausel in SQL Server
In SQL Server können Sie die Aggregatfunktion COUNT()
in Kombination mit der Klausel WHERE
verwenden, um die Anzahl der Datensätze zu zählen, die bestimmte Bedingungen erfüllen.
Das Ziel des folgenden Beispiels besteht darin, die Anzahl der Datensätze zu zählen, bei denen der MyColumn
-Wert gleich 1 ist. Hier ist die geänderte Abfrage:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (SELECT COUNT(*) FROM dbo.AD_CurrentView AS Sub WHERE Sub.UID = Outer.UID AND Sub.MyColumn = 1) * 100.0 / COUNT(UID) AS PercentageOfOne FROM dbo.AD_CurrentView AS Outer GROUP BY UID HAVING SUM(ContractDollars) >= 500000</code>
Im Folgenden finden Sie eine Aufschlüsselung der Abfrageschritte:
MyColumn
= 1). UID
-Spalten, um die Hauptabfrage mit der Unterabfrage zu verbinden. MyColumn
gleich 1 ist, indem Sie die Anzahl in der Unterabfrage durch die Gesamtzahl der Datensätze für jede UID dividieren. Beachten Sie, dass der Divisor 100
in 100.0
geändert wird, um eine Gleitkommadivision sicherzustellen und ein genaueres prozentuales Ergebnis zu erhalten. PercentageOfOne
an. Diese überarbeitete Abfrage vermeidet potenzielle Probleme bei der Ganzzahldivision, indem bei der Prozentberechnung 100.0
anstelle von 100
verwendet wird, wodurch ein genaueres Gleitkommaergebnis gewährleistet wird.
Das obige ist der detaillierte Inhalt vonWie zähle ich Datensätze, die eine bestimmte Bedingung erfüllen, und berechne den Prozentsatz in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!