Heim >Datenbank >MySQL-Tutorial >Wie kann ich die bedingte Aggregation in MySQL verwenden, um Werte basierend auf bestimmten Kriterien zu zählen und zu summieren?

Wie kann ich die bedingte Aggregation in MySQL verwenden, um Werte basierend auf bestimmten Kriterien zu zählen und zu summieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 08:41:03498Durchsuche

How can I use conditional aggregation in MySQL to count and sum values based on specific criteria?

MySQL: Bedingte Aggregation mit „SUM IF“ und „COUNT IF“

Aggregationsfunktionen wie SUM und COUNT sind für die Zusammenfassung von Daten unerlässlich MySQL. Was aber, wenn Sie Bedingungen auf Ihre Aggregation anwenden müssen? Hier kommt die bedingte Aggregation ins Spiel.

Stellen Sie sich ein Szenario vor, in dem Sie eine Tabelle mit zwei Spalten haben: „Stunde“ und „Art“. Sie möchten „Stunden“-Werte basierend darauf zählen und summieren, ob der entsprechende „Art“-Wert 1 ist. Herkömmliche Aggregationsfunktionen allein können dies nicht bewältigen.

Um dieses Problem zu lösen, bietet MySQL die CASE-Anweisung an, die Ihnen dies ermöglicht um benutzerdefinierte Bedingungen für die Aggregation zu definieren. Hier ist eine überarbeitete Abfrage mit einer CASE-Anweisung:

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

In dieser Abfrage prüft die CASE-Anweisung, ob der „kind“-Wert gleich 1 ist. Wenn „true“, gibt sie 1 zurück; Andernfalls wird 0 zurückgegeben. Das Ergebnis wird dann mit der Funktion SUM() summiert, um die Vorkommen von „kind“ gleich 1 zu zählen.

Durch die Verwendung der bedingten Aggregation mit einer CASE-Anweisung können Sie effektiv filtern und aggregieren Ihre Daten anhand bestimmter Kriterien. Diese leistungsstarke Technik eröffnet eine Vielzahl von Möglichkeiten zur Datenanalyse und -bearbeitung in MySQL.

Das obige ist der detaillierte Inhalt vonWie kann ich die bedingte Aggregation in MySQL verwenden, um Werte basierend auf bestimmten Kriterien zu zählen und zu summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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