코딩테스트/리트코드
리트코드 DB HARD 문제 601. Human Traffic of Stadium 쿼리/풀이
RyanKwon
2023. 1. 19. 16:53
728x90
https://leetcode.com/problems/human-traffic-of-stadium/description/
사실 솔루션 참고함 ^^.. 전에 빅데이터팀에서 이런 류의 거의 동일한 문제 해결을 위한 쿼리를 팀에서 짯던적이 있는데 사실 내가 짯던게 아니고 + 그 쿼리도 엄청~나게 복잡하면서.. 수 회 오류가 발견됐던 쿼리라서 ..머릿속에 욲여넣지 않았었다. 그래서 다시 품
처음 접근은 당연히 전에 했던것처럼 lag나 lead를 쓰려고 했는데 흠~ 잘 안돼서.. 솔루션 참고햇음. 거의똑같이풀엇을듯?
select distinct *
from(
select A.id as id, A.visit_date as visit_date, A.people as people
from Stadium A, Stadium B, Stadium C
where A.people >= 100 and B.people >= 100 and C.people >=100
and
((abs(A.id - B.id) = 1 and abs(B.id - C.id) = 1 and abs(A.id - C.id) = 2)
or
(abs(A.id - B.id) = 1 and abs(B.id - C.id) = 2 and abs(A.id - C.id) = 1)
or
(abs(A.id - B.id) = 2 and abs(B.id - C.id) = 1 and abs(A.id - C.id) = 1)))D
order by id
데이터는 데이터 답게 처리해야 한다고 전에 팀장님이 얘기했었다.
그래서 그렇게 풀려고 노력했는데 여전히 잘 안된다.
전에 빅데이터팀때 쿼리는.. 이렇게 풀어도 되려나?모르겟다. 모든 경우로 union해서 제외하기 vs lag몇번 쓰기.
lag로도 분명 풀릴 문제긴 하거든. 어떻게 하면..
몇백만 행 짜리를 이런식으로 풀긴 어렵겠지만 코딩테스트에서 데이터 처리하기 위해서 가장 적합한 풀이임은 맞다. 데이터는 이렇게 푸는게 맞으니까. 표로 만들어서 비교하는것.
728x90