Jak zamawiać według liczby opisów w każdej grupie w ulu?

Oto HQL:

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

Przykładowy wynik wygląda następująco:

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

Ale chcę zrobićorder by w każdej grupie A, a zamierzone dane wyjściowe to:

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

Czy ktokolwiek może mi dać pomysł, jak rozwiązać ten problem tylko wjede HQL? Wielkie dzięki