首頁 > 資料庫 > mysql教程 > 如何在 PostgreSQL 中使用相同查詢的計算列?

如何在 PostgreSQL 中使用相同查詢的計算列?

Linda Hamilton
發布: 2025-01-14 07:29:47
原創
620 人瀏覽過

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

在PostgreSQL中使用相同查詢中的計算列

PostgreSQL不允許直接在同一SELECT語句中使用別名進行計算。 例如,以下SQL語句會報錯:

<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>
登入後複製

這是因為PostgreSQL在計算total_3時,total_1total_2尚未被定義。

解決方法是使用子查詢(派生表):

<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>
登入後複製

透過建立子查詢t,我們將total_1total_2在外部SELECT語句中定義為可用的欄位。這種方法不會帶來性能損失。 外部查詢引用內部查詢的結果集,因此可以正確計算total_3

以上是如何在 PostgreSQL 中使用相同查詢的計算列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板