Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Cari Jurang Pertama dalam Lajur Kaunter Berjalan Menggunakan SQL?
Gunakan SQL untuk mengenal pasti jurang dalam menjalankan kaunter
Mencari jurang dalam lajur run counter ialah tugas biasa dalam analisis data. Dalam SQL, terdapat beberapa cara untuk mencapai ini, menyediakan penyelesaian standard yang serasi dengan pelbagai DBMS.
Cari jurang pertama
Matlamatnya adalah untuk mengenal pasti integer positif terkecil yang hilang daripada lajur pembilang. Sebagai contoh, diberi [1, 2, 4, 5], jurang ialah 3.
MySQL, 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 (paling biasa)
<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>
Fungsi tetingkap gelongsor (jika disokong)
<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>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Jurang Pertama dalam Lajur Kaunter Berjalan Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!