2013-12-05 4 views
5

Вот HQL:Как заказать по счету desc в каждой группе в улье?

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

Пример вывода выглядит следующим образом:

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

Но то, что я хочу сделать order by в каждой группе А, и предполагаемый выход, как:

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

может кто-нибудь может дать мне некоторое представление о том, как решить эту проблему только один HQL? Большое спасибо!

ответ

0

Попробуйте этот запрос:

Если вы хотите только порядок А, то:

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

Если вы хотите сделать заказ, А и В, то:

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

Надеется, что это помогает.

+0

К сожалению, это не то, что я хочу. Я намерен выполнить порядок по счету в каждой подгруппе результата. Как вы можете видеть в моем посте. Thx в любом случае :) – Judking

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

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/16838656) – ABS

+0

Я думал, что его вопрос состоит в том, чтобы сделать заказ по счету с наивысшим сверху в каждой подгруппе результата и поместить остальные два столбца в порядок. Могу ли я спросить, почему это не дает ответа? – androidbeginner

+1

** Из очереди просмотра: ** Могу ли я попросить вас добавить еще какой-нибудь контекст вокруг вашего ответа. Кодовые ответы трудно понять. Это поможет читателю и будущим читателям, если вы сможете добавить дополнительную информацию в свой пост. См. Также [Объяснение полностью основанных на кодах ответов] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers). –

Смежные вопросы