본문 바로가기
배우기/SQL

Leetcode - 180.Consecutive Numbers(조인)_MySQL

by 인사잘해 2022. 4. 18.

안녕하세요!

 

Leetcode 에 있는 Consecutive Numbers 문제입니다.

 

- 문제 

최소 3번 이상 연속적으로 나타나는 숫자를 찾는 쿼리를 작성하라.

 

- 테이블

 

Logs 테이블
Example

- 쿼리

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/

 

댓글