Jud*_*ing 11 hive group-by hql
这是HQL:
select A, B, count(*) as cnt from test_table group by A, B order by cnt desc;
Run Code Online (Sandbox Code Playgroud)
示例输出如下:
a1 | b1 | 5
a2 | b1 | 3
a1 | b2 | 2
a2 | b2 | 1
Run Code Online (Sandbox Code Playgroud)
但我想要的是order by在A的每一组中做,并且预期的输出如下:
a1 | b1 | 5
a1 | b2 | 2
a2 | b1 | 3
a2 | b2 | 1
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一些想法如何在一个 HQL中解决这个问题?非常感谢!
dim*_*mah 23
select A, B, count(*) as cnt
from test_table
group by A, B
order by A, cnt desc;
Run Code Online (Sandbox Code Playgroud)
尝试这个查询:
如果你只想要 A 的顺序,那么:
select A, B, count(*) as cnt from test_table group by A, B order by A asc;
Run Code Online (Sandbox Code Playgroud)
如果你想要 A 和 B 的顺序,那么:
select A, B, count(*) as cnt from test_table group by A, B order by A asc,B asc;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
29583 次 |
| 最近记录: |