Heim >Datenbank >MySQL-Tutorial >Wie zähle ich Datensätze basierend auf Bedingungen in SQL Server ohne COUNTIF?
Zählen Sie Datensätze basierend auf der Bedingung in SQL Server (kein COUNTIF erforderlich)
Bei der Datenanalyse ist es oft notwendig, Datensätze basierend auf bestimmten Bedingungen zu zählen. Obwohl SQL Server nicht über eine native COUNTIF-Funktion verfügt, gibt es andere Möglichkeiten, diese Funktionalität zu erreichen.
Das folgende Beispiel zeigt, wie der Prozentsatz der Datensätze berechnet wird, bei denen der MyColumn
-Wert 1 ist, während nach UID
gruppiert und die Datensätze gefiltert werden, bei denen ContractDollars
größer oder gleich 500000 ist.
Verwenden Sie SUM- und CASE-Anweisungen anstelle von COUNTIF
Eine Möglichkeit, COUNTIF in SQL Server zu implementieren, besteht darin, die SUM-Funktion in Verbindung mit der CASE-Anweisung zu verwenden, um die erforderlichen Bedingungen zu überprüfen:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, SUM(CASE WHEN MyColumn=1 THEN 1 ELSE 0 END) * 100.0 / COUNT(UID) AS PercentageOf1 FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000;</code>
In dieser Abfrage wertet die CASE-Anweisung das MyColumn
jedes Datensatzes aus und gibt 1 zurück, wenn der Wert 1 ist, andernfalls 0. Anschließend zählt die SUM-Funktion die Anzahl der Datensätze, die die Bedingung erfüllen.
Der Prozentsatz der Datensätze mit dem gewünschten Wert kann ermittelt werden, indem die SUMME des CASE-Ausdrucks durch die Gesamtzahl der Datensätze (COUNT(UID)) dividiert und mit 100 multipliziert wird. Beachten Sie, dass 100,0 als Gleitkommazahl verwendet wird, um hier an der Operation teilzunehmen, um sicherzustellen, dass das Ergebnis eine Gleitkommazahl ist, und um einen Genauigkeitsverlust durch Ganzzahldivision zu vermeiden.
Weitere Hinweise
<code class="language-sql">SUM(CASE WHEN ISNULL(MyColumn,0)=1 THEN 1 ELSE 0 END)</code>
Dadurch wird sichergestellt, dass NULL-Werte als 0 behandelt werden, wodurch verhindert wird, dass sie die Zählungen verzerren.
Durch die Kombination dieser Techniken können Sie Datensätze basierend auf bestimmten Bedingungen in SQL Server zählen und so wertvolle Erkenntnisse für die Datenanalyse liefern.
Das obige ist der detaillierte Inhalt vonWie zähle ich Datensätze basierend auf Bedingungen in SQL Server ohne COUNTIF?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!