Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Pengiraan Dengan Betul Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL?

Bagaimana untuk Melakukan Pengiraan Dengan Betul Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL?

Barbara Streisand
Barbara Streisandasal
2025-01-14 07:14:43275semak imbas

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

Gunakan lajur yang dikira dengan betul dalam pertanyaan PostgreSQL untuk pengiraan

Apabila memproses data dalam PostgreSQL, anda selalunya perlu melakukan pengiraan pada lajur untuk memperoleh maklumat baharu. Atas sebab ini, PostgreSQL menyediakan fungsi untuk mencipta lajur yang dikira yang boleh digunakan sebagai sebahagian daripada pertanyaan yang sama yang menciptanya.

Isu: Sintaks SQL yang salah

Pertimbangkan pernyataan SQL berikut, yang berfungsi dalam sistem pengurusan pangkalan data (DBMS) lain tetapi gagal dalam 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 akan membuang ralat yang menyatakan bahawa lajur total_1 dan total_2 tidak wujud.

Penyelesaian: Balut pertanyaan dalam jadual terbitan

Untuk menyelesaikan masalah ini, PostgreSQL memerlukan pernyataan SELECT dibalut dalam jadual terbitan:

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

Kaedah ini membolehkan anda mengakses alias lajur dalam jadual terbitan, termasuk lajur yang dikira total_1 dan total_2. Ia tidak menyebabkan sebarang penalti prestasi.

Nota

Perlu diperhatikan bahawa pernyataan SQL mentah yang membenarkan lajur yang dikira digunakan secara langsung dalam pengiraan seterusnya tidak disyorkan dalam PostgreSQL atau DBMS lain. Ia boleh menyebabkan masalah prestasi dan menghalang pengoptimuman pertanyaan.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengiraan Dengan Betul Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn