나는 뭔가를하려고하는데, 어떻게해야할지 잘 모르겠습니다.쿼리의 각 행에 대해 다른 쿼리의 상위 20 개를 선택하십시오.
나는 같은 일부 데이터를 가지고 :
나에게 시간과 이름으로 그룹화 수를 반환WITH a AS (SELECT theid, thename, thetimestamp FROM mytable)
SELECT thename, TRUNC (thetimestamp, 'HH24'), COUNT (theid) FROM a
group by thename,trunc(thetimestamp,'HH24') ORDER BY COUNT (theid) desc)
.
나는 그냥 싶습니다
for each hour, top X counts
는 것이 가능할까요?
나는 종료와 :
SELECT thename, hour, cnt
FROM
(SELECT thename, hour, cnt,
rank() over (partition by hours order by cnt desc) rnk
FROM
(SELECT thename, TRUNC (thetimestamp, 'HH24') hour, COUNT (theid) cnt
FROM mytable
group by thename,trunc(thetimestamp,'HH24')
)
)
WHERE rnk <= :X
내가 (CNT 내림차순으로 thename하여 파티션 순서)에서 "쉼표"를 제거하고 내가 대신 thename하지만, 그렇지 않은 완벽한의 시간으로 partion을하는 데 필요한 다음은 이중 CTE는 토니 Adrews 이미 하위 쿼리 접근 방식을 기록하기 때문에,이다 ! – svrist
죄송합니다. 이제 수정했습니다. 감사. –