HQL语句使用row_number() over(partition by),分组排序取topN
生活随笔
收集整理的這篇文章主要介紹了
HQL语句使用row_number() over(partition by),分组排序取topN
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在?mysql中實現over partiton by,進行分組排序取topN
https://georgedage.blog.csdn.net/article/details/103557651
使用mysql進行分區中的topN,但是在生產中我們一般使用sparksql進行分區中的topN計算。那么如果針對于HQL那么怎么進行寫呢?
【友情提示,使用的hive,可以將hql語句放在spark上進行運行試驗,這里只針對于hql語句的編寫!】
創表
create table t1(id int,name String,class String,score int) row format delimited fields terminated by "," ;加載數據
load data local inpath "/root/t1" into table t1;HQL語句
【友情補充】如果不太熟悉,我在針對row_number()寫了一篇小博客
淺析row_number()函數【HQL】https://georgedage.blog.csdn.net/article/details/103564049
select t.id,t.name,t.class,t.score from (select id, name, class, score, row_number() over(partition by class order by score desc) rank from t1) t where t.rank < 4;結果展示
總結
以上是生活随笔為你收集整理的HQL语句使用row_number() over(partition by),分组排序取topN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅析row_number()函数【HQL
- 下一篇: 每日两SQL(6),欢迎交流~