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!
select A, B, count(*) as cnt
from test_table
group by A, B
order by A, cnt desc;
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.
select A, B, count(*) as cnt from test_table group by A, B order by A asc, B asc, cnt desc;