leet code sql 601
문제 링크 - https://leetcode.com/problems/human-traffic-of-stadium/
문제
- 사람들이 100명 이상 방문한 곳
- 최소 3개 이상 연속한 id 값인 경우
- 방문일 순서대로 정렬
문제 접근
- cte 절을 활용하여 100명 이상 방문한 곳부터 필터링
- 연속하여 온지를 확인하기 위해 row number를 같이 활용
- cnt = id - row_number()는 같은 group 으로 볼 수 있다.
- cnt를 3회 이상 집계하여 필터링
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-- 최소 연속 3개가 되도록
-- Idea = id - row number
with info as (
select
id,
visit_date,
people,
id - row_number() over() rn
from Stadium
where people >= 100
)
select
id,
visit_date,
people
from info
where rn in (
select
rn
from info
group by rn
having count(*) > 2
)
order by visit_date