2017-10-17 21 views
-1

Je développe un rapport sur BIRT pour ControlDesk/Maximo et j'ai besoin de montrer les groupes de tickets les plus demandés.Comment sélectionner un nombre limité de groupes

J'ai obtenu comment sélectionner un nombre limité de tickets par groupe dans la requête DB2, mais ce n'est pas ce dont j'ai besoin. Cela étant seulement les 10 premiers groupes avec la plupart count (classe de billets)

de Merci en ce qui concerne

My SQL, jusqu'à présent, qui ne montre pas ce que je veux est quelque chose comme:

select tktemplate.description as tk_description, sr.description as sr_description, sr.reportdate, sr.templateid from sr inner join tktemplate on sr.templateid = tktemplate.templateid GROUP BY sr.templateid, sr.reportdate, tktemplate.description, sr.description ORDER BY sr.templateid fetch first 10 rows only 

mais il ne montre que les 10 premières lignes d'ensemble, et non pas les premiers de chaque groupe

+1

Does'nt Maximo/reporting ControlDesk faire automatiquement pour vous un rapport en conserve? – mao

+0

Déposez votre requête – Rams

+0

Rams, il n'y a pas de requête, comme je n'ai aucune idée sur la façon de résoudre ce problème ... –

Répondre

0

Ajouter ceci à la fin de votre requête:

ORDER BY countvalue DESC 
FETCH FIRST 10 ROWS ONLY 

I.e. trier par le nombre dans l'ordre décroissant. Récupère seulement 10 lignes.

FETCH FIRST est ANSI SQL.

0

Vous avez deux approches différentes. Soit donner le même résultat

ORDER BY tickets_count DESC LIMIT 10 

ou

ORDER BY tickets_count DESC FETCH FIRST 10 ROWS ONLY 
+0

il montre seulement les 10 premières lignes de toutes les requêtes, j'ai besoin 10 premiers de chaque groupe –