Mengira Perbezaan Antara Baris Berjujukan dalam Pertanyaan SQL
Dengan cekap menentukan perbezaan antara nilai dalam baris bersebelahan dalam pernyataan SQL SELECT
boleh dicapai menggunakan fungsi tetingkap LAG()
. Pendekatan diperkemas ini mengelakkan kerumitan subkueri atau jadual sementara.
Pertimbangkan jadual dengan lajur Id
dan Value
. Untuk mengira perbezaan antara Value
baris dan Value
baris sebelumnya, gunakan sintaks SQL ini:
<code class="language-sql">SELECT Value - LAG(Value) OVER (ORDER BY Id) AS Difference FROM your_table;</code>
Fungsi LAG(Value)
mendapatkan semula Value
daripada baris sebelum baris semasa, disusun mengikut lajur Id
. Menolak nilai ketinggalan ini daripada semasa Value
menghasilkan perbezaan.
Adalah penting untuk ambil perhatian klausa ORDER BY
dalam fungsi OVER()
. Jika lajur Id
anda bukan urutan berterusan, penggunaan Id - 1
adalah tidak tepat. LAG()
mengendalikan jurang dalam jujukan dengan pasti dengan merujuk baris sebelumnya berdasarkan susunan yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Perbezaan Antara Baris Berturut-turut dalam Pernyataan SELECT SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!