Hive-分组之后取前n个

Posted Gssol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive-分组之后取前n个相关的知识,希望对你有一定的参考价值。

1. 统计国家每个省份出现次数最高的5个城市的名称

直观思维来考虑:

把 数据组织成:

国家     省份     出现次数(倒序)  城市

row_number() 根据partition by 生成次序 ,rank_code, 然后用rank_code 做限制  

2. sql 程序

select

country_name,

province_name,

city_name,

cnt_num,

row_number() over (partition by country_name, province order by cnt_num desc) rank_code

from table

where rank_code <= 5

 3. 参考文章链接

https://blog.csdn.net/mori66/article/details/54670204

 

以上是关于Hive-分组之后取前n个的主要内容,如果未能解决你的问题,请参考以下文章

分组取前N记录(转)

mysql分组取前N记录

分组后在分组内排序每个分组中取前N条

hive窗口函数使用详解

mysql分组 排序 取前2条

parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......