Verwendung der MySQL-Funktion SUM() in einer WHERE-Klausel
In MySQL ist die direkte Verwendung der SUM()-Funktion in einer WHERE-Klausel eingeschränkt . Stattdessen können Sie die HAVING-Klausel in Verbindung mit der SUM()-Funktion verwenden.
WHERE SUM(cash) > 500 Problem:
Die bereitgestellte Abfrage mit WHERE SUM(cash) > 500 funktioniert nicht, da Aggregatfunktionen wie SUM() nicht zum Vergleich in einer WHERE-Klausel verwendet werden können.
HAVING-Klausel:
Um Aggregatfunktionen zum Vergleich zu verwenden, müssen Sie verwenden die HAVING-Klausel. Die HAVING-Klausel wird mit der GROUP BY-Klausel verwendet, um die Gruppierungsergebnisse einzuschränken.
Beispielabfrage:
Um die erste Zeile zu finden, in der die laufende Summe an Bargeld 500 überschreitet:
<code class="sql">SELECT y.id, y.cash FROM (SELECT t.id, t.cash, (SELECT SUM(x.cash) FROM table x WHERE x.id <= t.id) AS running_total FROM table t ORDER BY t.id) y WHERE y.running_total > 500 ORDER BY y.id LIMIT 1;</code>
Erklärung:
Das obige ist der detaillierte Inhalt vonWie kann ich die SUM()-Funktion für Vergleiche in einer MySQL-WHERE-Klausel verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!