面試官:說一下row_number,rank和dense_rank的區別
答:啥,我不知道呀,沒用過
面試官:好的,今天咱們就先到這吧,回去等通知!
一 數據準備
create table wedw_tmp.t_province_people_cnt_info_df(
province_name string COMMENT '省份'
,people_cnt int COMMENT '人口數'
)
row format delimited fields terminated by ',';
select * from wedw_tmp.t_province_people_cnt_info_df;
+-+---+--+
| province_name | people_cnt |
+-+---+--+
| 江西 | 100 |
| 浙江 | 200 |
| 雲南 | 200 |
| 江蘇 | 200 |
| 河南 | 300 |
| 廣東 | 400 |
| 湖南 | 400 |
| 湖北 | 500 |
+-+---+--+
二 row_number
select
province_name
,people_cnt
,row_number() over(order by people_cnt asc) as rn
from
wedw_tmp.t_province_people_cnt_info_df
;
三 rank
select
province_name
,people_cnt
,rank() over(order by people_cnt asc) as rn
from
wedw_tmp.t_province_people_cnt_info_df
;
四 dense_rank
select
province_name
,people_cnt
,dense_rank() over(order by people_cnt asc) as rn
from
wedw_tmp.t_province_people_cnt_info_df
;
五 區別
row_number:不管排名是不是有相同的,都按照順序1,2,3…..n
rank:排名相同的名次一樣,同一排名有幾個,後面排名就會跳過幾次,如1 2 2 2 5 6 6 8
dense_rank:排名相同的名次一樣,且後面名次不跳躍 如 1 2 2 2 3 4 4 5
2020大數據面試題真題總結(附答案)
一文探究數據倉庫體系(2.7萬字建議收藏)
一文探究Hadoop(3萬字長文,建議收藏)
一文帶你走進HIVE的世界(1.8W字建議收藏)
一文帶你全方位了解Flink(3.2W字建議收藏)
你要悄悄學會HBase,然後驚豔所有人(1.7萬字建議收藏)
一文帶你深入了解kafka並提供52道企業常見面試題(1.8W字建議收藏)
非常全面的DolphinScheduler(海豚調度)安裝使用文檔
Hive調優,數據工程師成神之路
數據質量那點事
簡述元數據管理
簡單聊一聊大數據學習之路
沒有夢想,何必遠方