Heim >Datenbank >MySQL-Tutorial >Wie führt man Berechnungen mithilfe berechneter Spalten in PostgreSQL-Abfragen korrekt durch?

Wie führt man Berechnungen mithilfe berechneter Spalten in PostgreSQL-Abfragen korrekt durch?

Barbara Streisand
Barbara StreisandOriginal
2025-01-14 07:14:43278Durchsuche

How to Correctly Perform Calculations Using Calculated Columns in PostgreSQL Queries?

Berechnete Spalten in PostgreSQL-Abfragen korrekt für Berechnungen verwenden

Bei der Verarbeitung von Daten in PostgreSQL müssen Sie häufig Berechnungen für Spalten durchführen, um neue Informationen abzuleiten. Aus diesem Grund bietet PostgreSQL die Funktionalität zum Erstellen berechneter Spalten, die als Teil derselben Abfrage verwendet werden können, die sie erstellt.

Problem: Falsche SQL-Syntax

Betrachten Sie die folgende SQL-Anweisung, die in anderen Datenbankverwaltungssystemen (DBMS) funktioniert, in PostgreSQL jedoch fehlschlägt:

<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,
      (calculated total_1 + calculated total_2) as total_3
from data;</code>

PostgreSQL gibt einen Fehler aus, der besagt, dass die Spalten total_1 und total_2 nicht vorhanden sind.

Lösung: Schließen Sie die Abfrage in eine abgeleitete Tabelle ein

Um dieses Problem zu lösen, erfordert PostgreSQL, dass die SELECT-Anweisung in eine abgeleitete Tabelle eingeschlossen wird:

<code class="language-sql">select cost1,
       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>

Mit dieser Methode können Sie auf Spaltenaliase in der abgeleiteten Tabelle zugreifen, einschließlich der berechneten Spalten total_1 und total_2. Es verursacht keine Leistungseinbußen.

Notizen

Es ist erwähnenswert, dass unformatierte SQL-Anweisungen, die die direkte Verwendung berechneter Spalten in nachfolgenden Berechnungen ermöglichen, in PostgreSQL oder anderen DBMS nicht empfohlen werden. Dies kann zu Leistungsproblemen führen und die Abfrageoptimierung behindern.

Das obige ist der detaillierte Inhalt vonWie führt man Berechnungen mithilfe berechneter Spalten in PostgreSQL-Abfragen korrekt durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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