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

Sqlserver 使用row_number()over(partitioon by) 分組去重

 更新時(shí)間:2026年07月16日 09:27:05   作者:農(nóng)村小鎮(zhèn)哥  
本文帶你徹底搞懂row_number()窗口函數(shù),結(jié)合partition by和order by,輕松實(shí)現(xiàn)組內(nèi)編號、排名提取,還能巧妙去除重復(fù)數(shù)據(jù),感興趣的可以了解一下

‌row_number() over (partition by order by) 是一種‌SQL窗口函數(shù),在Oracle、Hive 以及mysql8.0以上版本可以使用,用于在每個(gè)分區(qū)內(nèi)對每一行進(jìn)行排序并編號,從1開始編號,賦予其連續(xù)的編號。它一般用于分析和報(bào)表等場景,可以幫助我們對數(shù)據(jù)進(jìn)行分區(qū)后排序,獲取排名信息。

row_number() 函數(shù)搭配partition by與order by函數(shù)可以完成以下功能。

對查詢結(jié)果集中的每一行分配一個(gè)唯一的數(shù)字,從1開始編號。
結(jié)合partition by可以先對結(jié)果進(jìn)行分組,然后組內(nèi)每條數(shù)據(jù)再從1開始編號。
應(yīng)用場景:比如學(xué)??荚嚱Y(jié)束后,按科目進(jìn)行分組,每個(gè)科目按成績進(jìn)行排序,獲取前十名。

總結(jié):row_numer是一個(gè)分組排序函數(shù),可以對查詢結(jié)果集先進(jìn)行分組,然后每組內(nèi)再進(jìn)行排序。對每個(gè)分組內(nèi)的每行分配一個(gè)從1開始的連續(xù)唯一編號。

在查詢數(shù)據(jù)時(shí)如果有重復(fù),我們知道可以用 distinct 去除重復(fù)值,但使用 distinct 只能去除所有查詢列都相同的記錄,如果有一個(gè)字段不同,distinct 就無法去重。

select  ID , 編碼, 姓名 from person where 姓名='李四'

但我們還想要實(shí)現(xiàn)這樣的效果,這時(shí)我們可以用 row_number()over(partitioon by column1 order by column2) 先進(jìn)行分組。根據(jù) COLUMN1 分組,在分組內(nèi)部根據(jù) COLUMN2 排序,結(jié)果表示為每組內(nèi)部排序后的順序編號,這個(gè)編號在組內(nèi)是連續(xù)且的。

select  ID , 編碼, 姓名 
,ROW_NUMBER()over(partition by 姓名 order by ID desc) as new_id --對姓名進(jìn)行分組,對id進(jìn)行從大到小排序
from person where name='李四'

再根據(jù)新生成的值作為條件,取出每組中的某個(gè)值。通常情況下取大值或小值,其它情況看需求。

一般將上述語句,看做為一個(gè)新表,如臨時(shí)表,或外嵌查詢 select。以臨時(shí)表為例。

select  ID , 編碼, 姓名 
,ROW_NUMBER()over(partition by 姓名 order by ID desc) as new_id --對姓名進(jìn)行分組,對id進(jìn)行從大到小排序
into #aa
from person where name='李四'
select * from #aa where new_id=1

就是為了去除重復(fù)值。將重復(fù)值分組,按大值排序,取條。

到此這篇關(guān)于Sqlserver 使用row_number()over(partitioon by) 分組去重的文章就介紹到這了,更多相關(guān)row_number()over(partitioon by) 分組去重內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

石嘴山市| 若羌县| 腾冲县| 休宁县| 军事| 青岛市| 民权县| 岑溪市| 惠东县| 汝州市| 弥渡县| 安乡县| 张家港市| 洱源县| 合江县| 开平市| 栾川县| 靖宇县| 景东| 平罗县| 游戏| 泰来县| 静宁县| 开封市| 炎陵县| 葵青区| 无为县| 陇南市| 增城市| 中超| 葫芦岛市| 正安县| 衢州市| 桐柏县| 荥经县| 长武县| 邢台市| 葫芦岛市| 凤台县| 九龙城区| 乌拉特后旗|