So verwenden Sie Aggregatfunktionen in SQL-UPDATE-Abfragen
In SQL ist es häufig erforderlich, die Werte einer Tabelle basierend auf aggregierten Daten einer anderen Tabelle zu aktualisieren Tisch. Die Standard-UPDATE-Abfrage unterstützt jedoch keine Aggregatfunktionen wie SUM oder GROUP BY.
Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:
Beispiel:
Stellen Sie sich das folgende Szenario vor: Sie möchten die Spalte Feld1 in der Tabelle Tabelle1 mit der Summe der Feld2-Werte für jedes Feld3 aus Tabelle2 aktualisieren Tabelle.
Falsche Implementierung:
UPDATE table1 SET field1 = SUM(table2.field2) FROM table1 INNER JOIN table2 ON table1.field3 = table2.field3 GROUP BY table1.field3
Diese Abfrage ist falsch, da die SET-Klausel keine Aggregatfunktion verwenden kann und die GROUP BY-Klausel in diesem Kontext nicht unterstützt wird .
Korrekte Implementierung:
Um dies korrekt zu erreichen, verwenden Sie a Unterabfrage, um das Aggregat zu berechnen und es mit der Zieltabelle für die Aktualisierung zu verknüpfen:
UPDATE t1 SET t1.field1 = t2.field2Sum FROM table1 t1 INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2 on t2.field3 = t1.field3
Diese Abfrage erstellt zunächst eine Unterabfrage, die die Summe von Feld2 für jedes Feld3 in Tabelle2 berechnet und so die Daten effektiv aggregiert. Die Ergebnisse werden in einer temporären Tabelle gespeichert, die dann mit Tabelle1 verknüpft wird, wobei die Spalte Feld3 als Verknüpfungsbedingung verwendet wird. Die Spalte field1 in Tabelle1 wird dann mit den entsprechenden field2Sum-Werten aktualisiert.
Das obige ist der detaillierte Inhalt vonWie kann ich Aggregatfunktionen in SQL UPDATE-Anweisungen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!