
3행 이상 연속으로 100명 이상의 사람이 방문한 행들을 뽑아라.
[Human Traffic of Stadium]
🔑 핵심 포인트
- 100명 이상 방문하면서, 3행 이상 연속으로 존재해야 하므로, 2번 SELF JOIN을 이용하여 조건을 만족하는 행 출력.
- A,B,C 따로 존재하는 열들을 하나로 묶어주기 위해 UNION이용
❗ UNION을 이용하면 중복을 알아서 제거해준다.
SELECT A.ID, A.VISIT_DATE, A.PEOPLE
FROM STADIUM A JOIN STADIUM B JOIN STADIUM C
ON A.ID = B.ID + 1 AND B.ID = C.ID + 1
WHERE A.PEOPLE >= 100 AND B.PEOPLE >= 100 AND C.PEOPLE >= 100
UNION
SELECT B.ID, B.VISIT_DATE, B.PEOPLE
FROM STADIUM A JOIN STADIUM B JOIN STADIUM C
ON A.ID = B.ID + 1 AND B.ID = C.ID + 1
WHERE A.PEOPLE >= 100 AND B.PEOPLE >= 100 AND C.PEOPLE >= 100
UNION
SELECT C.ID, C.VISIT_DATE, C.PEOPLE
FROM STADIUM A JOIN STADIUM B JOIN STADIUM C
ON A.ID = B.ID + 1 AND B.ID = C.ID + 1
WHERE A.PEOPLE >= 100 AND B.PEOPLE >= 100 AND C.PEOPLE >= 100
ORDER BY ID