Heim  >  Artikel  >  Datenbank  >  Wie gehen Sie mit COALESCE mit Nullwerten in der SUM-Funktion von MySQL um?

Wie gehen Sie mit COALESCE mit Nullwerten in der SUM-Funktion von MySQL um?

DDD
DDDOriginal
2024-11-02 08:47:29676Durchsuche

How do you handle null values in MySQL's SUM function with COALESCE?

So behandeln Sie Nullwerte in der SUM-Funktion von MySQL mit COALESCE

Bei der Durchführung von SUM-Berechnungen in MySQL kann es schwierig sein, mit Szenarios umzugehen, in denen Keine Werte erfüllen die angegebenen Kriterien, was zu einer NULL-Ausgabe führt. Um dieses Problem zu beheben, stellt MySQL die Funktion COALESCE bereit, die eine bequeme Möglichkeit bietet, einen Standardrückgabewert im Falle von NULL-Werten anzugeben.

Betrachten Sie die folgende MySQL-Funktion:

SELECT SUM(Column_1)
FROM Table
WHERE Column_2 = 'Test'

Wenn in Spalte_2 keine Einträge den Text „Test“ enthalten, gibt diese Funktion NULL zurück. In manchen Fällen ist es jedoch vorzuziehen, 0 statt NULL zurückzugeben, wenn keine Werte gefunden werden.

Um dies zu erreichen, können wir die COALESCE-Funktion innerhalb der SUM-Berechnung verwenden, wie unten gezeigt:

SELECT COALESCE(SUM(column),0)
FROM   table
WHERE  ...

Durch die Angabe von 0 als Standardwert in der Funktion COALESCE ersetzen wir effektiv alle NULL-Werte in der SUM-Berechnung durch 0 und stellen so sicher, dass das Ergebnis immer eine Ganzzahl ist (auch wenn keine Werte die SUM-Kriterien erfüllen).

Zusätzliche Informationen

Die COALESCE-Funktion ist vielseitig und kann in verschiedenen Szenarien über die Verarbeitung von NULL-Werten in Summenberechnungen hinaus verwendet werden. Dies ist besonders nützlich in Situationen, in denen Sie einen Fallback-Wert für fehlende oder unvollständige Daten bereitstellen müssen.

Um die Verwendung und Vorteile von COALESCE weiter zu veranschaulichen, betrachten Sie die folgenden Beispieltabellen mit unterschiedlichen Datentypen:

  • foo: Enthält sowohl Zahlen als auch NULL-Werte
  • bar: Enthält nur Nicht-Null-Zahlen
  • baz: Enthält nur NULL-Werte

Verwenden der Mit der COALESCE-Funktion in einer Abfrage, die die Summe der Werte in diesen Tabellen berechnet, können wir trotz des Vorhandenseins von Nullen konsistente Ergebnisse sicherstellen:

SELECT  'foo'                   as table_name,
        'mixed null/non-null'   as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    foo
UNION ALL

SELECT  'bar'                   as table_name,
        'all non-null'          as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    bar
UNION ALL

SELECT  'baz'                   as table_name,
        'all null'              as description,
        0                       as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    baz

Die Ergebnisse dieser Abfrage lauten wie folgt:

TABLE_NAME DESCRIPTION EXPECTED_SUM ACTUAL_SUM
foo mixed null/non-null 21 21
bar all non-null 21 21
baz all null 0 0

Wie aus den Ergebnissen hervorgeht, stellt COALESCE sicher, dass die SUM-Berechnung immer 0 für die baz-Tabelle zurückgibt, in der alle Werte NULL sind, und die erwartete Summe von 21 für die Tabellen foo und bar liefert.

Das obige ist der detaillierte Inhalt vonWie gehen Sie mit COALESCE mit Nullwerten in der SUM-Funktion von MySQL um?. 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