最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中row_number()?over(partition?by)的用法說明

 更新時(shí)間:2022年07月11日 14:09:02   作者:奧卡姆的剃刀  
這篇文章主要介紹了SQL中row_number()?over(partition?by)的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

row_number 語法

ROW_NUMBER()函數(shù)將針對SELECT語句返回的每一行,從1開始編號,賦予其連續(xù)的編號。在查詢時(shí)應(yīng)用了一個(gè)排序標(biāo)準(zhǔn)后,只有通過編號才能夠保證其順序是一致的,當(dāng)使用ROW_NUMBER函數(shù)時(shí),也需要專門一列用于預(yù)先排序以便于進(jìn)行編號

partition by關(guān)鍵字是分析性函數(shù)的一部分,它和聚合函數(shù)不同的地方在于它能返回一個(gè)分組中的多條記錄,而聚合函數(shù)一般只有一條反映統(tǒng)計(jì)值的記錄,partition by用于給結(jié)果集分組,如果沒有指定那么它把整個(gè)結(jié)果集作為一個(gè)分組,分區(qū)函數(shù)一般與排名函數(shù)一起使用。

原始表score

s_id 表是學(xué)生編號,c_id表是課程編號,s_score 表是學(xué)生對應(yīng)的課程分?jǐn)?shù)

在這里插入圖片描述

1.要求:得出每門課程的學(xué)生成績排序(升序)

----因?yàn)槭敲块T課程的結(jié)果,并且要排序,所以用row_number

select * ,row_number() over (partition by c_id order by s_score) from score;

返回結(jié)果:

在這里插入圖片描述

2:進(jìn)一步要求:得出每門課程的學(xué)生成績,并且按照70分作為分割線排序—即低于70分的排序,高于70分的排序

select * ,row_number() over (partition by c_id,(case when s_score>70 then 1 else 0 end) order by s_score) from score;

返回結(jié)果:

在這里插入圖片描述

row_number() over(partition by 列名1 order by 列名2 desc)的使用 

表示根據(jù) 列名1 分組,然后在分組內(nèi)部根據(jù)  列名2 排序,而此函數(shù)計(jì)算的值就表示每組內(nèi)部排序后的順序編號,可以用于去重復(fù)值

與rownum的區(qū)別在于:使用rownum進(jìn)行排序的時(shí)候是先對結(jié)果集加入偽列rownum然后再進(jìn)行排序,而此函數(shù)在包含排序從句后是先排序再計(jì)算行號碼.

---查詢所有姓名,如果同名,則按年齡降序

SELECT?name,age,detail,ROW_NUMBER()?OVER(PARTITION?BY?name?ORDER?BY?age?DESC)?FROM?TEST_Y; 

通過上面的語句可知,是按照name字段分組,按age字段排序的。

如果只需查詢出不重復(fù)的姓名即可,則可使用如下的語句, 由查詢結(jié)果可知,姓名相同年齡小的數(shù)據(jù)被過濾掉了;

SELECT ? * ? FROM ? ( SELECT ? name ,age, detail ,ROW_NUMBER() ? OVER ( ? PARTITION ? BY ? name? ORDER ? BY ? age? DESC )RN ? FROM ? TEST_Y ) WHERE ? RN= ? 1 ;

分頁

--先做一個(gè)子查詢,先按id1進(jìn)行排序,排序完后,給每條記錄進(jìn)行了編號

--然后再將子查詢做為一張表,就可以進(jìn)行分頁了

select *
? from (select t.*,row_number() over(order by t.id1 asc) as rn from demo t) d
? where d.rn between 1 and 2

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • win10下mysql 8.0.23 安裝配置方法圖文教程

    win10下mysql 8.0.23 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了win10下mysql 8.0.23 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • mysql 時(shí)間戳的用法

    mysql 時(shí)間戳的用法

    這篇文章主要介紹了mysql 時(shí)間戳的用法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • MySQL數(shù)據(jù)庫的一次死鎖實(shí)例分析

    MySQL數(shù)據(jù)庫的一次死鎖實(shí)例分析

    本文主要給大家通過一個(gè)實(shí)例來具體介紹MySQL死鎖問題的相關(guān)知識,接下來我們就來一一介紹這部分內(nèi)容,希望能夠?qū)δ兴鶐椭?/div> 2016-11-11
  • MySql子查詢IN的執(zhí)行和優(yōu)化的實(shí)現(xiàn)

    MySql子查詢IN的執(zhí)行和優(yōu)化的實(shí)現(xiàn)

    本文主要介紹了MySql子查詢IN的執(zhí)行和優(yōu)化的實(shí)現(xiàn),詳細(xì)的介紹了為什么IN這么慢以及如何優(yōu)化,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-07-07
  • MySQL索引命中與失效代碼實(shí)現(xiàn)

    MySQL索引命中與失效代碼實(shí)現(xiàn)

    這篇文章主要介紹了MySQL索引命中與失效代碼實(shí)現(xiàn),文章內(nèi)容詳細(xì),簡單易懂,需要的朋友可以參考下
    2023-01-01
  • mysql清除log-bin日志的方法

    mysql清除log-bin日志的方法

    這篇文章主要介紹了mysql清除log-bin日志的方法,同時(shí)介紹了log-bin日志的作用,需要的朋友可以參考下
    2014-06-06
  • 解決mysql ERROR 1017:Can''t find file: ''/xxx.frm'' 錯誤

    解決mysql ERROR 1017:Can''t find file: ''/xxx.frm'' 錯誤

    如果重啟服務(wù)器前沒有關(guān)閉mysql,MySql的MyiSAM表很有可能會出現(xiàn) ERROR #1017 :Can't find file: '/xxx.frm' 的錯誤
    2011-08-08
  • 深入研究mysql中的varchar和limit(容易被忽略的知識)

    深入研究mysql中的varchar和limit(容易被忽略的知識)

    這篇文章主要介紹了深入研究mysql中的varchar和limit(容易被忽略的知識),本文探究了varchar(5)可以存儲多少個(gè)漢字、多少個(gè)字母數(shù)字和mysql中的limit你真的會用嗎兩個(gè)知識點(diǎn),需要的朋友可以參考下
    2015-03-03
  • 簡單解決Windows中MySQL的中文亂碼與服務(wù)啟動問題

    簡單解決Windows中MySQL的中文亂碼與服務(wù)啟動問題

    這篇文章主要介紹了Windows中MySQL的中文亂碼與服務(wù)啟動問題,如果程序沒有特殊需要則建議MySQL盡量默認(rèn)設(shè)為UTF-8格式編碼,需要的朋友可以參考下
    2016-03-03
  • MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    為了解決MySQL中大數(shù)據(jù)量的查詢效率問題,采用水平拆分策略,通過取模運(yùn)算確定表后綴,實(shí)現(xiàn)數(shù)據(jù)的有效管理,設(shè)計(jì)分表時(shí),需利用線程變量存取請求參數(shù),并通過攔截器確定操作的具體表名,從而優(yōu)化數(shù)據(jù)處理性能,此方法適用于業(yè)務(wù)表數(shù)據(jù)量大或快速增長的場景
    2024-11-11

最新評論

石台县| 瓮安县| 上栗县| 周口市| 潞城市| 克拉玛依市| 葫芦岛市| 崇左市| 霍林郭勒市| 新昌县| 炉霍县| 连南| 乌鲁木齐市| 大竹县| 眉山市| 平顶山市| 洞口县| 宝丰县| 西丰县| 通化县| 航空| 泉州市| 利辛县| 麟游县| 留坝县| 江陵县| 碌曲县| 屏南县| 宁河县| 齐河县| 福海县| 丰县| 海南省| 高碑店市| 栖霞市| 策勒县| 龙井市| 荥阳市| 柳州市| 山丹县| 兰州市|