ROW_NUMBER()、RANK()、DENSE_RANK區(qū)別
ROW_NUMBER():排序,不會(huì)有重復(fù)的排序數(shù)值。對(duì)于相等的兩個(gè)數(shù)字,排序序號(hào)不一致
數(shù)值 | 排序序號(hào) |
---|---|
1 | 1 |
1 | 2 |
2 | 3 |
select
id,
row_number()
over(order by id) rn
from
data
DENSE_RANK():排序,可有重復(fù)值。對(duì)于相等的兩個(gè)數(shù)字,排序序號(hào)一致
數(shù)值 | 排序序號(hào) |
---|---|
1 | 1 |
1 | 1 |
2 | 2 |
select
id,
dense_rank()
over(order by id) rn
from
data
RANK():排序,可有重復(fù)值。對(duì)于相等的兩個(gè)數(shù)字,排序序號(hào)一致,但是總數(shù)會(huì)減少
數(shù)值 | 排序序號(hào) |
---|---|
1 | 1 |
1 | 1 |
2 | 3 |
select
id,
rank()
over(order by id) rn
from
data
如果窗口中over()無(wú)排序字段,那么結(jié)果如何?
select
id,
rank()
over()
from
data
數(shù)值 | 排序序號(hào) |
---|---|
1 | 1 |
1 | 1 |
2 | 1 |
如果窗口中over()無(wú)排序字段,使用的是row_number()排序,結(jié)果如何?
select
id,
row_number()
over()
from
data
數(shù)值 | 排序序號(hào) |
---|---|
1 | 1 |
2 | 2 |
1 | 3 |
這種現(xiàn)象的原因:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-510233.html
在over()窗口中,所有的數(shù)值排序都是一樣的。對(duì)于rank因?yàn)樵试S重復(fù),所以全為1,而row_number()不會(huì)有重復(fù)的排序序號(hào),所以會(huì)為1,2,3,4,等,但是每次排序的結(jié)果都是不同的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-510233.html
到了這里,關(guān)于ROW_NUMBER()、RANK()、DENSE_RANK區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!