ホームページ > データベース > mysql チュートリアル > PostgreSQL クエリで計算列をエラーなく使用するにはどうすればよいですか?

PostgreSQL クエリで計算列をエラーなく使用するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-14 06:06:42
オリジナル
555 人が閲覧しました

How Can I Use Calculated Columns in PostgreSQL Queries Without Errors?

PostgreSQL 計算列: 制限事項の回避策

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,
       (total_1 + total_2) AS total_3  -- Error: total_1 and total_2 are not found
FROM data;</code>
ログイン後にコピー

このエラーは、PostgreSQL がクエリを行ごとに処理するために発生します。 total_1total_2 は、同じ SELECT ステートメント内での後続の計算には使用できません。

この解決策には、サブクエリ (派生テーブル) を使用して最初の計算をカプセル化することが含まれます。 これにより、結果を外部クエリで参照できるようになります:

<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1, total_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
) AS t;</code>
ログイン後にコピー

内側の total_1 ステートメント (total_2 というエイリアス) 内で SELECTt の計算をネストすることにより、外側の SELECT ステートメントでのさらなる計算にアクセスして使用できるようになります。この方法は、大幅なパフォーマンスのオーバーヘッドを発生させることなく、PostgreSQL の計算列を操作する実用的かつ効率的な方法を提供します。

以上がPostgreSQL クエリで計算列をエラーなく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート