Heim > Datenbank > MySQL-Tutorial > Wie kann ich die SUM()-Funktion für Vergleiche in einer MySQL-WHERE-Klausel verwenden?

Wie kann ich die SUM()-Funktion für Vergleiche in einer MySQL-WHERE-Klausel verwenden?

DDD
Freigeben: 2024-11-04 06:07:29
Original
697 Leute haben es durchsucht

How Can I Use the SUM() Function for Comparisons in a MySQL WHERE Clause?

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>
Nach dem Login kopieren

Erklärung:

  • Die Unterabfrage leitet die laufende Summe für jede Zeile ab.
  • Der Spaltenalias für die laufende Summe kann referenziert werden in der WHERE-Klausel.
  • Die Abfrage wird nach ID sortiert und auf die erste Zeile beschränkt, um das gewünschte Ergebnis abzurufen.

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage