Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie erreicht man die Funktionalität „SUM IF' und „COUNT IF' in MySQL mit bedingter Aggregation?

Mary-Kate Olsen
Freigeben: 2024-11-13 14:32:02
Original
319 Leute haben es durchsucht

How to Achieve 'SUM IF' and 'COUNT IF' Functionality in MySQL with Conditional Aggregation?

Bedingte Aggregation in MySQL: Freischalten der Funktionen „SUM IF“ und „COUNT IF“

Durchführen bedingter Aggregation in MySQL, z. B. Summieren oder Das Zählen von Werten basierend auf bestimmten Bedingungen kann durch die Verwendung von CASE-Anweisungen erreicht werden. Dadurch können Sie Kriterien flexibel auf Ihre Aggregationsvorgänge anwenden.

Stellen Sie sich das folgende Szenario vor: Sie haben eine Tabelle mit den Spalten „Stunde“ und „Art“ (die die Werte 1, 2 oder 3 enthalten kann). Sie möchten die Anzahl der Zeilen zählen, die Gesamtstunden berechnen und die Anzahl der Zeilen bestimmen, bei denen „art“ gleich 1 ist.

Zunächst könnten Sie die folgenden Abfragen ausprobieren:

SELECT count(id), SUM(hour) as totHour, SUM( IF ( kind = 1, 1, 0 ) ) as countKindOne
Nach dem Login kopieren

oder

SELECT count(id), SUM(hour) as totHour, COUNT( IF ( kind = 1 ) ) as countKindOne
Nach dem Login kopieren

Diese Abfragen führen jedoch wahrscheinlich zu einem Fehler. Um dieses Problem zu lösen, müssen Sie eine CASE-Anweisung innerhalb der Aggregationsoperationen verwenden:

SELECT count(id), 
    SUM(hour) as totHour, 
    SUM(case when kind = 1 then 1 else 0 end) as countKindOne
Nach dem Login kopieren

In dieser CASE-Anweisung geben wir an, dass wir 1 zurückgeben, wenn der Wert in der Spalte „Art“ 1 ist, andernfalls wir geben 0 zurück. Dadurch können wir bedingt die Zeilen zählen, in denen „art“ gleich 1 ist.

Das obige ist der detaillierte Inhalt vonWie erreicht man die Funktionalität „SUM IF' und „COUNT IF' in MySQL mit bedingter Aggregation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage