您的位置:首页 > 其它

HIVE分组排序问题

2016-12-02 17:58 811 查看








答案:

hive> select *,row_number() over (partition by product_no order by start_time desc) from table1;

知识点:

1、row_number

hive (test)> select *, row_number() over (partition by sub order by score) as od from t;


2、rank

hive (test)> select *, rank() over (partition by sub order by score) as od from t;


3、dense_ran

hive (test)> select *, dense_rank() over (partition by sub order by score desc) from t;


业务实例:
统计每个学科的前三名

select * from (select *, row_number() over (partition by sub order by score desc) as od from t ) t where od<=3;


语文成绩是80分的排名是多少

hive (test)> select od from (select *, row_number() over (partition by sub order by score desc) as od from t )t where sub=‘chinese‘ and score=80;


分页查询

hive (test)> select * from (select *, row_number() over () as rn from t) t1 where rn between 1 and 5;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: