1. 程式人生 > >Hive-分組之後取前n個

Hive-分組之後取前n個

.net rank details rom 出現 number row tails style

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個