J'essaie de faire quelque chose et je ne sais pas comment le faire.Pour chaque ligne de la requête, sélectionnez le top 20 de l'autre requête
J'ai des données comme ceci:
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)
qui me renvoie le nombre groupé à l'heure et le nom.
Je voudrais que ce soit juste
for each hour, top X counts
Est-ce possible?
j'ai fini avec:
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
J'ai enlevé la « virgule » dans (partition par lenom, commande par cnt desc) et je devais déstiné par heure au lieu de theName mais sinon parfait ! – svrist
Oups, corrigé maintenant. Merci. –