인프런 커뮤니티 질문&답변

KoKuMa님의 프로필 이미지
KoKuMa

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이

2번 문제 풀이

윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?

해결된 질문

작성

·

180

0

Select Distinct s.hackers, h.name, s.final

From (

Select hackers, sum(maxscore) over (partition by hackers) as final

From

(

Select Distinct hacker_id as hackers, challenge_id,

max(score) over (partition by hacker_id, challenge_id) as maxscore

From Submissions

) sub

) s

Inner join Hackers h on h.hacker_id = s.hackers

Where s.final > 0

Order by s.final desc

답변 1

0

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

윈도우 함수를 쓰면서 더 간단히 줄이기는 어려울 것 같습니다.
사실 이 쿼리는 윈도우 함수와 서브쿼리가 많아 효율적이지는 않아요. max 등 단순 집계 함수로 풀 수 있는 문제라면 그렇게 푸는 편이 좋습니다.
하지만 연습하는 단계에서 여러 방법으로 시도해 보시는 것은 좋은 학습 방법이 될 수 있습니다 :)

KoKuMa님의 프로필 이미지
KoKuMa

작성한 질문수

질문하기