Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Pengiraan Dengan Betul Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL?
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!