Bedingtes Zählen innerhalb von COUNT()-Funktionen
Sie können Bedingungen direkt in Ihre COUNT()
Funktion integrieren. Dies ist besonders nützlich, wenn Sie Zeilen zählen müssen, die unterschiedliche Kriterien innerhalb einer einzelnen SQL-Abfrage erfüllen, wodurch die Notwendigkeit mehrerer Abfragen oder Unterabfragen vermieden wird. Zählen Sie beispielsweise die Anzahl der „Manager“ und „Mitarbeiter“ in einer einzigen SELECT
-Anweisung.
Der Schlüssel besteht darin, einen CASE
-Ausdruck innerhalb der COUNT()
-Funktion zu verwenden. COUNT()
zählt nur Nicht-NULL-Werte. Deshalb:
<code class="language-sql">SELECT COUNT(CASE WHEN Position = 'Manager' THEN 1 ELSE NULL END) AS ManagerCount FROM ...</code>
Dies zählt nur Zeilen, in denen Position
„Manager“ ist. Das ELSE NULL
stellt sicher, dass Zeilen, die die Bedingung nicht erfüllen, nicht gezählt werden.
Alternativ können Sie SUM()
:
<code class="language-sql">SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount FROM ...</code>
Dadurch wird das gleiche Ergebnis erzielt; SUM()
fügt 1 für jeden „Manager“ und 0 für alle anderen hinzu. Dieser Ansatz kann in einigen Datenbanksystemen etwas effizienter sein. Bei beiden Methoden ist keine separate WHERE
-Klausel erforderlich, wodurch sie sich ideal zum gleichzeitigen Zählen mehrerer Kategorien eignen.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen zählen, die bestimmte Bedingungen innerhalb einer COUNT()-Funktion erfüllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!