Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen zählen, die bestimmte Bedingungen innerhalb einer COUNT()-Funktion erfüllen?
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:
SELECT COUNT(CASE WHEN Position = 'Manager' THEN 1 ELSE NULL END) AS ManagerCount FROM ...
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()
:
SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount FROM ...
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!