select * from
( select idx,
nm_kor, email, score, clear_level, total_time, rownumber() over (
order by score desc, clear_level desc, total_time asc ) as num
from
( SELECT idx, nm_kor, email, score,
clear_level, total_time, rank() over (partition by email order by
score desc, total_time asc) as rank FROM
EVT003
where content_date = '200601') as
sort
where rank=1 ) as list
where num >= 1 and num < 4
;
이래저래 눈팅해서 만든 쿼리인데요
목적은 이메일을 중심으로 리스트를 순위 매기고 날자로 구분하여
상위 3건을 소팅하는
겁니다.
(상위 3건 이 아닐경우 추가로
부탁드립니다.)
복잡한거 같은데 단순화할 수 있는 방법이 없을까요?
|