안녕하세요!
Leetcode 에 있는 Consecutive Numbers 문제입니다.
- 문제
최소 3번 이상 연속적으로 나타나는 숫자를 찾는 쿼리를 작성하라.
- 테이블


- 쿼리
SELECT DISTINCT L.num ConsecutiveNums
FROM logs L
INNER JOIN logs L_1 ON L.id + 1 = L_1.id
INNER JOIN logs L_2 ON L.id + 2 = L_2.id
WHERE L.num = L_1.num AND L.num = L_2.num
logs 테이블을 셀프 조인합니다.
id 1을 기준으로 id + 1 = 2 이므로, L_1 테이블에서의 id 2의 row와 조인이 됩니다.
동일하게 id + 2 = 3 이므로, L_2 테이블에서의 id 3의 row와 조인이 됩니다.

L 테이블의 num, L1 테이블의 num, L2 테이블의 num 이 같은 숫자인 조건을 작성합니다.
그리고 그 숫자를 SELECT 하면 됩니다.
/*
SELECT 절에 DISTINCT 를 입력하지 않아도 결과에 Accepted 라고 나오는데 제출하면 틀렸다고 나옵니다.
DISTINCT 를 입력해줘야 정답으로 인정해줍니다. 왜 그런지는 잘 이해가 안 되네요..
*/
- 출처 : https://leetcode.com/problems/consecutive-numbers/
'배우기 > SQL' 카테고리의 다른 글
| HackerRank - Contest Leaderboard(조인, 서브쿼리)_MySQL (0) | 2022.04.21 |
|---|---|
| HackerRank - Placements(조인, 서브쿼리/with 문)_MySQL (0) | 2022.04.21 |
| HackerRank - The Report(CASE WHEN/조인, BETWEEN)_MySQL (0) | 2022.04.18 |
| HackerRank - Top Competitors (조인)_MySQL (0) | 2022.04.11 |
| LeetCode - 184.Department Highest Salary (조인, 서브쿼리)_MySQL (1) | 2022.04.08 |
댓글