MySQL: Alternative Methoden für die bedingte Aggregation mit „SUM IF“ und „COUNT IF“
Stellen Sie sich das folgende Szenario vor: Sie haben eine Tabelle mit den Spalten „Stunde“ und „Art“ und möchten Berechnungen basierend auf einer Bedingung durchführen. Beispielsweise möchten Sie möglicherweise die Anzahl der Zeilen zählen, in denen die Spalte „Art“ gleich 1 ist, oder die Spalte „Stunde“ nur für Zeilen summieren, in denen die Spalte „Art“ den Wert 2 hat.
In MySQL Die Syntax für die Verwendung von „SUM IF“ oder „COUNT IF“ wird nicht direkt unterstützt. Stattdessen können Sie die CASE-Anweisung verwenden, um eine bedingte Aggregation zu erreichen:
SELECT count(id), SUM(hour) as totHour, SUM(case when kind = 1 then 1 else 0 end) as countKindOne FROM table_name;
Diese Abfrage zählt die Gesamtzahl der Zeilen, summiert die Spalte „Stunde“ für alle Zeilen und zählt die Anzahl der Zeilen, in denen das „ Die Spalte „kind“ ist gleich 1.
Weitere Informationen zur bedingten Aggregation in MySQL finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie führe ich eine bedingte Aggregation in MySQL ohne „SUM IF' und „COUNT IF' durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!