SQL を使用して実行中のカウンターのギャップを見つける
SQL は、テーブル内で実行されている一連のカウンターで欠損値を見つけるための強力なメカニズムを提供します。
実行カウンター列の最初の欠損値 (たとえば、値 1、2、4、および 5 は存在するが、3 が欠落している) を判別するには、次の SQL テクニックを使用できます。
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 サーバー:
<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>
オラクル:
<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 (最も効率が低い):
<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>
スライディング ウィンドウ機能をサポートするシステム:
<code class="language-sql">SELECT previd + 1 FROM ( SELECT id, LAG(id) OVER (ORDER BY id) previd FROM mytable ) q WHERE previd < id LIMIT 1;</code>
これらの SQL テクニックのいずれかを使用すると、使用しているデータベース システムに関係なく、SQL テーブルの実行カウンタ列で不足しているギャップを効果的に特定できます。
以上がSQL は実行中のカウンタ列の最初の欠損値をどのように識別できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。