https://leetcode.com/problems/consecutive-numbers/
Column Name | Type |
id | int |
num | varchar |
Logs 테이블:
- id: 테이블의 기본키
- num: 숫자
적어도 세 번 연속으로 나타나는 모든 숫자를 찾으세요.
쿼리를 자체결합해서 풀어낼 수 있었다.
SELECT distinct l1.num ConsecutiveNums
FROM Logs l1
JOIN Logs l2 ON l1.id = l2.id - 1
JOIN Logs l3 ON l1.id = l3.id - 2
where l1.num = l2.num and l1.num = l3.num
인터넷검색을 하면서 발견한 방법인데 결합하려는 열에 연산을 적용해서 원하는 만큼 당겨서 join을 할 수 있었다. 위의 방법을 통해서 간단하게 현재 데이터에서부터 연속하는 세개의 데이터를 같은 열로 결합해낼 수 있었다.
l1이 현재 숫자, l2가 다음 숫자, l3가 그 다음 숫자이므로 한 열에서 세 숫자가 모두 같은 경우를 where로 필터링해서 출력해주면 된다.
'코딩일기' 카테고리의 다른 글
알고리즘 코드카타 110 - 두 큐 합 같게 만들기 (0) | 2024.07.07 |
---|---|
알고리즘 코트카타 - 26 ~ 30 (자바스크립트) (0) | 2024.07.06 |
알고리즘 코드카타 109 - 연속된 부분 수열의 합 (0) | 2024.07.06 |
알고리즘 코트카타 - 21 ~ 25 (자바스크립트) (0) | 2024.07.05 |
SQL 코드카타 108 - Triangle Judgement (2) | 2024.07.05 |