ホームページ >データベース >mysql チュートリアル >PostgreSQL クエリで計算列を使用して計算を正しく実行するにはどうすればよいですか?
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_1
と total_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_1
および total_2
を含む、派生テーブル内の列の別名にアクセスできます。これによってパフォーマンスが低下することはありません。
メモ
計算列を後続の計算で直接使用できるようにする生の SQL ステートメントは、PostgreSQL やその他の DBMS では推奨されないことに注意してください。これにより、パフォーマンスの問題が発生し、クエリの最適化が妨げられる可能性があります。
以上がPostgreSQL クエリで計算列を使用して計算を正しく実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。