row number,rank,densize rank差異
結果テーブルに任意の行番号を指定するときに使用する3つの方法
row_number 反復値(同点)でも、順番に番号が付けられます.
rank が重複する値(同点)がある場合、その数をスキップして次の番号を付与する. e.g.は、2位が共同1位となり、次は3位となった.
dense_rank 反復値(同点)があっても、その数を超えることなく、次の番号が連続して与えられる. e.g.は、2位が共同1位になった後、次は2位にランクインした. 例
米野球でマリナーズが試合時間(分)で並んだ結果. row_number
rank
dense_rank
row_number
rank
dense_rank
米野球でマリナーズが試合時間(分)で並んだ結果.
with
t1 as (
select
row_number() over( partition by homeTeamName order by duration_minutes desc ) seq,
homeTeamName home_team_name,
duration_minutes,
from
`bigquery-public-data.baseball.schedules` a
where 1=1
)
select
*
from
t1
where 1=1
and seq <= 5
and home_team_name = 'Mariners'
結果with
t1 as (
select
rank() over( partition by homeTeamName order by duration_minutes desc ) seq,
homeTeamName home_team_name,
duration_minutes,
from
`bigquery-public-data.baseball.schedules` a
where 1=1
)
select
*
from
t1
where 1=1
and seq <= 5
and home_team_name = 'Mariners'
結果with
t1 as (
select
dense_rank() over( partition by homeTeamName order by duration_minutes desc ) seq,
homeTeamName home_team_name,
duration_minutes,
from
`bigquery-public-data.baseball.schedules` a
where 1=1
)
select
*
from
t1
where 1=1
and seq <= 5
and home_team_name = 'Mariners'
結果Reference
この問題について(row number,rank,densize rank差異), 我々は、より多くの情報をここで見つけました https://velog.io/@ssam/rownumber-rank-denserankテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol