web-dev-qa-db-ja.com

ハイブの各グループのカウントdescで並べ替える方法は?

HQLは次のとおりです。

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 Aの各グループで、意図した出力は次のようになります。

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

この問題をone HQLで解決する方法を誰かに教えてもらえますか?どうもありがとう!

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

このクエリを試してください:

Aの順序のみが必要な場合:

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

AとBの順序が必要な場合:

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

お役に立てれば。

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