Verwendung berechneter Spalten in derselben Abfrage in PostgreSQL
PostgreSQL erlaubt keine Berechnungen mit Aliasen direkt innerhalb derselben SELECT
-Anweisung. Beispielsweise meldet die folgende SQL-Anweisung einen Fehler:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2, (total_1 + total_2) AS total_3 FROM data;</code>
Das liegt daran, dass bei der Berechnung von total_3
durch PostgreSQL total_1
und total_2
noch nicht definiert wurden.
Die Lösung besteht darin, eine Unterabfrage (abgeleitete Tabelle) zu verwenden:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1 + total_2 AS total_3 FROM ( SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2 FROM data ) t;</code>
Durch die Erstellung der Unterabfrage t
definieren wir total_1
und total_2
als verfügbare Spalten in der äußeren SELECT
-Anweisung. Bei diesem Ansatz gibt es keine Leistungseinbußen. Die äußere Abfrage referenziert die Ergebnismenge der inneren Abfrage, sodass total_3
korrekt berechnet werden kann.
Das obige ist der detaillierte Inhalt vonWie kann ich berechnete Spalten aus derselben Abfrage in PostgreSQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!