SQL-L4-001 / 고급 윈도
연속 구간 섬 찾기
고급문제
numbers의 서로 다른 정수들을 연속 구간으로 묶어 시작값, 끝값, 개수를 시작값순으로 조회하세요.
결과의 열 순서와 행 순서를 지키세요. 별칭 이름은 자유지만 열 개수와 값은 일치해야 합니다. SQLite 기준입니다.
입출력 예시
테이블과 예제 데이터
CREATE TABLE numbers (n INTEGER); INSERT INTO numbers VALUES (1),(2),(4),(7),(8);
첫 데이터의 기대 결과 · 행 순서대로
[
[
1,
2,
2
],
[
4,
4,
1
],
[
7,
8,
2
]
]서로 다른 준비 데이터 2개에서 확인해요.
힌트
연속 정수에서 값-순번은 일정합니다.
해설·정답 보기
차이값으로 섬을 구분한 뒤 최솟값·최댓값·개수를 집계합니다.
WITH g AS(SELECT n,n-ROW_NUMBER() OVER(ORDER BY n) k FROM numbers) SELECT MIN(n),MAX(n),COUNT(*) FROM g GROUP BY k ORDER BY MIN(n);
query.sql결과 비교
코드는 이 브라우저에 자동 저장돼요.
풀이 결과
코드를 작성하고 채점하기를 눌러보세요.
학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.