日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    歡迎訪問 生活随笔!

    生活随笔

    當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

    编程问答

    rank,dense_rank,row_number使用和区别

    發布時間:2025/3/15 编程问答 37 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 rank,dense_rank,row_number使用和区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    rank,dense_rank,row_number區別

    一:語法(用法):
    ???? rank() over([partition by col1] order by col2)?
    ???? dense_rank() over([partition by col1] order by col2)?
    ???? row_number() over([partition by col1] order by col2)?
    ???? 其中[partition by col1]可省略。


    二:區別
    ??? 三個分析函數都是按照col1分組內從1開始排序
    ????
    ??? row_number() 是沒有重復值的排序(即使兩天記錄相等也是不重復的),可以利用它來實現分頁
    ??? dense_rank() 是連續排序,兩個第二名仍然跟著第三名
    ??? rank()?????? 是跳躍拍學,兩個第二名下來就是第四名
    ????
    ??? 理論就不多講了,看了案例,一下就明白了
    ????
    SQL> create table t(
    ? 2?? name varchar2(10),
    ? 3?? score number(3));
    ?
    Table created
    ?
    SQL> insert into t(name,score)?
    ? 2?? select '語文',60 from dual union all
    ? 3?? select '語文',90 from dual union all
    ? 4?? select '語文',80 from dual union all
    ? 5?? select '語文',80 from dual union all
    ? 6?? select '數學',67 from dual union all
    ? 7?? select '數學',77 from dual union all
    ? 8?? select '數學',78 from dual union all
    ? 9?? select '數學',88 from dual union all
    ?10?? select '數學',99 from dual union all
    ?11?? select '語文',70 from dual
    ?12? /
    ?
    10 rows inserted
    ?
    SQL> select * from t;
    ?
    NAME?????? SCORE
    ---------- -----
    語文????????? 60
    語文????????? 90
    語文????????? 80
    語文????????? 80
    數學????????? 67
    數學????????? 77
    數學????????? 78
    數學????????? 88
    數學????????? 99
    語文????????? 70
    ?
    10 rows selected
    ?
    SQL> select name,score,rank() over(partition by name order by score) tt from t;
    ?
    NAME?????? SCORE???????? TT
    ---------- ----- ----------
    數學????????? 67????????? 1
    數學????????? 77????????? 2
    數學????????? 78????????? 3
    數學????????? 88????????? 4
    數學????????? 99????????? 5
    語文????????? 60????????? 1
    語文????????? 70????????? 2
    語文????????? 80????????? 3?? <----
    語文????????? 80????????? 3?? <----
    語文????????? 90????????? 5
    ?
    10 rows selected
    ?
    SQL> select name,score,dense_rank() over(partition by name order by score) tt from t;
    ?
    NAME?????? SCORE???????? TT
    ---------- ----- ----------
    數學????????? 67????????? 1
    數學????????? 77????????? 2
    數學????????? 78????????? 3
    數學????????? 88????????? 4
    數學????????? 99????????? 5
    語文????????? 60????????? 1
    語文????????? 70????????? 2
    語文????????? 80????????? 3?? <----
    語文????????? 80????????? 3?? <----
    語文????????? 90????????? 4
    ?
    10 rows selected
    ?
    SQL> select name,score,row_number() over(partition by name order by score) tt from t;
    ?
    NAME?????? SCORE???????? TT
    ---------- ----- ----------
    數學????????? 67????????? 1
    數學????????? 77????????? 2
    數學????????? 78????????? 3
    數學????????? 88????????? 4
    數學????????? 99????????? 5
    語文????????? 60????????? 1
    語文????????? 70????????? 2
    語文????????? 80????????? 3? <----
    語文????????? 80????????? 4? <----
    語文????????? 90????????? 5
    ?
    10 rows selected
    ?
    SQL> select name,score,rank() over(order by score) tt from t;
    ?
    NAME?????? SCORE???????? TT
    ---------- ----- ----------
    語文????????? 60????????? 1
    數學????????? 67????????? 2
    語文????????? 70????????? 3
    數學????????? 77????????? 4
    數學????????? 78????????? 5
    語文????????? 80????????? 6
    語文????????? 80????????? 6
    數學????????? 88????????? 8
    語文????????? 90????????? 9
    數學????????? 99???????? 10
    ?
    10 rows selected
    ?

    大家應該明白了吧!呵呵!接下來看應用

    一:dense_rank------------------查詢每門功課前三名


    ? select name,score from (select name,score,dense_rank() over(partition by name order by score desc) tt from t) x where x.tt<=3
    ??
    ?
    NAME?????? SCORE
    ---------- -----
    數學????????? 99
    數學????????? 88
    數學????????? 78
    語文????????? 90
    語文????????? 80
    語文????????? 80
    ?
    6 rows selected

    二:rank------------------語文成績70分的同學是排名第幾。
    ?? select name,score,x.tt from (select name,score,rank() over(partition by name order by score desc) tt from t) x where x.name='語文' and x.score=70
    ?
    ?
    NAME?????? SCORE???????? TT
    ---------- ----- ----------
    語文????????? 70????????? 4
    ????
    三:row_number——————分頁查詢
    ???? select xx.* from (select t.*,row_number() over(order by score desc) rowno from t) xx where xx.rowno between 1 and 3;
    ?
    NAME?????? SCORE????? ROWNO
    ---------- ----- ----------
    數學????????? 99????????? 1
    語文????????? 90????????? 2
    數學????????? 88????????? 3

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的rank,dense_rank,row_number使用和区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美丰满美乳xxx高潮www | 五月天一区二区三区 | 99re在线视频精品 | 蜜桃无码一区二区三区 | av免费大片 | 成人av在线看 | 青春草网站 | 日本久操视频 | 国产精品一区二区免费视频 | 网站免费在线观看 | 国产激情视频 | 日本黄色片一级 | 亚洲精品蜜桃 | 毛片无码免费无码播放 | 人妻与黑人一区二区三区 | 在线观看亚洲欧美 | 日本电影一区 | 久久免费精彩视频 | 日韩欧美一区二区免费 | 亚洲精品中文字幕成人片 | 中文字幕无码精品亚洲资源网久久 | 国产一区二区视频网站 | 天堂在线网 | 爱爱视频一区二区 | 国产成人传媒 | 久久国产在线观看 | 亚洲AV无码乱码国产精品色欲 | 91视频爱爱 | 欧美一区二区三区在线免费观看 | 少妇按摩一区二区三区 | 亚洲国产精品免费在线观看 | 欧美日韩免费一区二区 | 少妇被按摩师摸高潮了 | 欧美成年人视频在线观看 | 亚洲成人av电影在线 | 最新色网站 | 一卡二卡三卡四卡 | 最近2019中文字幕大全第二页 | 自慰无码一区二区三区 | 福利片在线看 | 欧美国产一区二区三区 | 国产精品久久久久91 | 大奶毛片| 又黄又湿的网站 | 五月婷婷中文字幕 | 黄色片在哪看 | 国产午夜麻豆影院在线观看 | 在线观看9.1| 妻色成人网 | 亚洲免费视频一区 | 亚洲色图17p | 国产精品99久久久久久久久 | 人妻熟妇又伦精品视频a | 欧美一区二区激情 | 情不自禁电影 | 欧美日韩中文一区 | 亚洲精品小视频在线观看 | 影音先锋国产在线 | 国产乱国产乱300精品 | 成人精品免费在线观看 | 午夜精品在线视频 | 99热视| 少妇中文字幕 | 中文国产字幕 | 夜夜操狠狠干 | 91抖音在线观看 | 国产精品国产三级国产专播精品人 | 国产三级精品三级在线观看 | 欧洲精品一区二区三区 | 成人激情文学 | 自拍偷拍第八页 | 激情都市一区二区 | 无码人妻少妇伦在线电影 | 一区三区在线观看 | 久久五月综合 | 欧美视频一区二区三区四区在线观看 | 久久视精品 | 一本之道久久 | 优优色综合 | 欧美一二三视频 | 91精品啪 | 青青草手机视频在线观看 | 天堂а√在线中文在线鲁大师 | 男女午夜视频在线观看 | 久久久久亚洲AV成人无在 | 制服丝袜天堂网 | 福利av在线 | 欧洲成人一区二区三区 | 亚洲综合伊人 | 一级做a爱片| 91原创国产 | 亚洲成人伦理 | 亚洲av无码国产精品麻豆天美 | av一区二区三区在线 | а√天堂资源官网在线资源 | xxxx久久| 五十路六十路七十路熟婆 | 国产传媒在线播放 | 热の国产|