rank 函数

产生序号(名次)的的函数

也是一种分析函数. 需要配合开窗函数使用.

不能跟 window 子句(rows....)

RANK() 排序相同时会重复,序号会出现不连续的情况

DENSE_RANK() 排序相同时会重复,序号连续

ROW_NUMBER() 排序相同时不会重复,序号连续

percent_rank() (分组内的rank值 - 1)/(分组内的总行数 - 1)

cume_dist() : 分组内的当前行数/分组内的总行数

需求: 计算每门学科成绩排名

建表, 并插入数据:

create table score(
name string,
subject string, 
score int) 
row format delimited fields terminated by "\t";
load data local inpath '/opt/module/datas/score.txt' into table score;

查询数据:

select name,
subject,
score,
rank() over(partition by subject order by score desc) rp,
dense_rank() over(partition by subject order by score desc) drp,
row_number() over(partition by subject order by score desc) rmp
from score;
Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-11-20 18:14:21

results matching ""

    No results matching ""