hive按照某个字段分组,然后获取每个分组中最新的n条数据
生活随笔
收集整理的這篇文章主要介紹了
hive按照某个字段分组,然后获取每个分组中最新的n条数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
hive -e "
use db;
select t.advertId,t.exposureNum from (select advertId,exposureNum,ROW_NUMBER() OVER(PARTITION BY advertId ORDER BY addTime desc) AS rn FROM tb_advert_flow_money where ftype = 2
) t where t.rn=1;" > exposureInfo.txt;
解釋說明:
ROW_NUMBER() OVER(PARTITION BY advertId ORDER BY addTime desc) AS rn
表示通過 advertId 進行分區,然后在每個分區中按照時間降序排列結果。
ROW_NUMBER() 生成的時候通OVER(通過)(PARTITION BY advertId ORDER BY addTime desc) 這里面的結果生成行號
其中:
select advertId,exposureNum,ROW_NUMBER() OVER(PARTITION BY advertId ORDER BY addTime desc) AS rn FROM tb_advert_flow_money where ftype = 2通過上面SQL生成的結果類似:
通過:
hive -e " use db; select t.advertId,t.exposureNum from (select advertId,exposureNum,ROW_NUMBER() OVER(PARTITION BY advertId ORDER BY addTime desc) AS rn FROM tb_advert_flow_money where ftype = 2 ) t where t.rn=1;" > exposureInfo.txt;生成的數據為:
總結
以上是生活随笔為你收集整理的hive按照某个字段分组,然后获取每个分组中最新的n条数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好的博文地址
- 下一篇: 9点15到30成交规则