web-dev-qa-db-fra.com

Comment ordonner par nombre desc dans chaque groupe d'une ruche?

Voici le HQL:

select A, B, count(*) as cnt from test_table group by A, B order by cnt desc;

La sortie exemple est la suivante:

a1 | b1 | 5
a2 | b1 | 3
a1 | b2 | 2
a2 | b2 | 1

Mais ce que je veux, c'est faire le order by dans chaque groupe de A, et le résultat attendu est le suivant:

a1 | b1 | 5
a1 | b2 | 2
a2 | b1 | 3
a2 | b2 | 1

Quelqu'un pourrait-il me donner une idée de la façon de résoudre ce problème en one HQL? Merci beaucoup!

9
Judking
select A, B, count(*) as cnt 
from test_table 
group by A, B 
order by A, cnt desc;
20
dimamah

Essayez cette requête:

Si vous ne voulez que l'ordre de A alors:

select A, B, count(*) as cnt from test_table group by A, B order by A asc;

Si vous voulez un ordre de A et B alors:

select A, B, count(*) as cnt from test_table group by A, B order by A asc,B asc;

J'espère que cela t'aides.

0
Mukesh S
select A, B, count(*) as cnt from test_table group by A, B order by A asc, B asc, cnt desc;
0
androidbeginner