Kenal pasti jurang dalam pembilang SQL
Dalam analisis data, adalah perkara biasa untuk menghadapi jurang dalam jujukan nilai pembilang berjalan. Menentukan lokasi jurang ini boleh membantu mengenal pasti titik data yang hilang atau mengesan anomali. Untuk memenuhi keperluan ini, mari kita terokai cara untuk mencari takuk pertama dalam lajur pembilang menggunakan SQL.
Pertanyaan SQL untuk pengesanan jurang
Untuk pelbagai sistem pengurusan pangkalan data (DBMS), kami boleh memanfaatkan sintaks SQL tertentu untuk mencari takuk pertama dalam lajur pembilang:
MySQL dan PostgreSQL:
<code class="language-sql">SELECT id + 1 FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 ) ORDER BY id LIMIT 1</code>
SQL Server:
<code class="language-sql">SELECT TOP 1 id + 1 FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 ) ORDER BY id</code>
Oracle:
<code class="language-sql">SELECT * FROM ( SELECT id + 1 AS gap FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 ) ORDER BY id ) WHERE rownum = 1</code>
ANSI SQL (paling cekap):
<code class="language-sql">SELECT MIN(id) + 1 FROM mytable mo WHERE NOT EXISTS ( SELECT NULL FROM mytable mi WHERE mi.id = mo.id + 1 )</code>
Sistem yang menyokong fungsi tetingkap gelongsor:
<code class="language-sql">SELECT -- TOP 1 -- SQL Server 2012+ 请取消以上注释 previd + 1 FROM ( SELECT id, LAG(id) OVER (ORDER BY id) previd FROM mytable ) q WHERE previd <> id - 1 ORDER BY id -- LIMIT 1 -- PostgreSQL 请取消以上注释</code>
Pertanyaan ini mendapatkan semula jurang pertama dengan memilih contoh pertama yang tiada nilai pembilang berikutnya. Ia menggunakan teknik yang cekap seperti subkueri negatif, fungsi tetingkap, atau ANSI SQL bergantung pada keupayaan DBMS.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Jurang Pertama dalam Lajur Kaunter SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!