SQL을 사용하여 실행 중인 카운터의 공백 식별
실행 카운터 열에서 공백을 찾는 것은 데이터 분석에서 일반적인 작업입니다. SQL에는 이를 달성하기 위한 여러 가지 방법이 있으며, 다양한 DBMS와 호환되는 표준 솔루션을 제공합니다.
첫 번째 공백 찾기
목표는 카운터 열에서 누락된 가장 작은 양의 정수를 식별하는 것입니다. 예를 들어 [1, 2, 4, 5]가 주어지면 간격은 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 서버
<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(가장 일반적)
<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 -- 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>
위 내용은 SQL을 사용하여 실행 중인 카운터 열의 첫 번째 간격을 어떻게 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!