Heim > Datenbank > MySQL-Tutorial > Wie führe ich eine bedingte Aggregation mit SUM und COUNT in MySQL durch?

Wie führe ich eine bedingte Aggregation mit SUM und COUNT in MySQL durch?

Patricia Arquette
Freigeben: 2024-11-16 07:32:02
Original
672 Leute haben es durchsucht

How to Perform Conditional Aggregation with SUM and COUNT in MySQL?

Bedingte Aggregation mit SUM und COUNT in MySQL

Bei der Arbeit mit relationalen Datenbanken ist es oft notwendig, bedingte Aggregationen durchzuführen, um Daten basierend zusammenzufassen nach bestimmten Kriterien. MySQL bietet mehrere Möglichkeiten, dies zu erreichen, einschließlich der Verwendung der IF()- und CASE-Anweisungen.

Verwendung der IF()-Anweisung

In Ihrem Beispiel haben Sie es versucht um die IF()-Anweisung zu verwenden, um die Anzahl der Zeilen zu berechnen, bei denen art gleich 1 ist. MySQL erlaubt jedoch nicht die Verwendung der IF()-Anweisung in Aggregatfunktionen wie SUM und COUNT. Dies liegt daran, dass IF() einen Skalarwert zurückgibt, während Aggregatfunktionen einen Spaltenausdruck als Eingabe erfordern.

Verwenden der CASE-Anweisung

Um eine bedingte Aggregation durchzuführen, können Sie Verwenden Sie die CASE-Anweisung. Mit der CASE-Anweisung können Sie mehrere Bedingungen angeben und basierend auf diesen Bedingungen unterschiedliche Werte zurückgeben.

Die folgende Abfrage verwendet die CASE-Anweisung, um die Anzahl der Zeilen zu berechnen, in denen kind gleich 1 ist:

SELECT
    COUNT(id),
    SUM(hour) AS totHour,
    SUM(CASE
        WHEN kind = 1 THEN 1
        ELSE 0
    END) AS countKindOne
FROM your_table;
Nach dem Login kopieren

In dieser Abfrage:

  • Die CASE-Anweisung wird verwendet, um die Bedingung kind = 1 auszuwerten.
  • Wenn die Wenn die Bedingung TRUE ist, wird 1 zurückgegeben.
  • Wenn die Bedingung FALSE ist, wird 0 zurückgegeben.
  • Das Ergebnis der CASE-Anweisung wird dann an die Aggregatfunktion SUM() übergeben.

Das obige ist der detaillierte Inhalt vonWie führe ich eine bedingte Aggregation mit SUM und COUNT in MySQL durch?. 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