Heim > Datenbank > MySQL-Tutorial > Wie kann ich berechnete Spalten aus derselben Abfrage in PostgreSQL verwenden?

Wie kann ich berechnete Spalten aus derselben Abfrage in PostgreSQL verwenden?

Linda Hamilton
Freigeben: 2025-01-14 07:29:47
Original
620 Leute haben es durchsucht

How Can I Use Calculated Columns from the Same Query in PostgreSQL?

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

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

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!

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