首頁 > 資料庫 > mysql教程 > 如何在 PostgreSQL 查詢中使用計算列正確執行計算?

如何在 PostgreSQL 查詢中使用計算列正確執行計算?

Barbara Streisand
發布: 2025-01-14 07:14:43
原創
279 人瀏覽過

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

PostgreSQL 查詢中正確使用計算列進行計算

在處理 PostgreSQL 中的資料時,通常需要對列進行計算以得出新的資訊。為此,PostgreSQL 提供了建立計算列的功能,這些計算列可以用作建立它們的相同查詢的一部分。

問題:不正確的 SQL 語法

考慮以下 SQL 語句,它在其他資料庫管理系統 (DBMS) 中有效,但在 PostgreSQL 中失敗:

<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 會引發錯誤,指出欄位 total_1total_2 不存在。

解決方案:將查詢包裝在衍生表中

為了解決這個問題,PostgreSQL 要求將 SELECT 語句包裝在衍生表中:

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

這種方法可讓您存取派生表中的列別名,包括計算列 total_1total_2。它不會造成任何性能損失。

注意事項

值得注意的是,允許直接在後續計算中使用計算列的原始 SQL 語句,在 PostgreSQL 或其他 DBMS 中都不建議。它可能導致效能問題並阻礙查詢最佳化。

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

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