校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > sqlserver巧用row_number和partition by分組取top數據

sqlserver巧用row_number和partition by分組取top數據

熱門標簽:江西穩定外呼系統供應商 北京智能外呼系統供應商家 奧維地圖標注字體大小修改 電話機器人錄音師薪資 無錫梁溪公司怎樣申請400電話 中國地圖標注省份用什么符號 高德地圖標注電話怎么沒了 孝感銷售電銷機器人廠家 智能電銷機器人教育
分組取TOP數據是T-SQL中的常用查詢, 如學生信息管理系統中取出每個學科前3名的學生。這種查詢在SQL Server 2005之前,寫起來很繁瑣,需要用到臨時表關聯查詢才能取到。SQL Server 2005后之后,引入了row_number()函數,row_number()函數的分組排序功能使這種操作變得非常簡單。下面是一個簡單示例:
復制代碼 代碼如下:

--1.創建測試表
create table #score
(
name varchar(20),
subject varchar(20),
score int
)
--2.插入測試數據
insert into #score(name,subject,score) values('張三','語文',98)
insert into #score(name,subject,score) values('張三','數學',80)
insert into #score(name,subject,score) values('張三','英語',90)
insert into #score(name,subject,score) values('李四','語文',88)
insert into #score(name,subject,score) values('李四','數學',86)
insert into #score(name,subject,score) values('李四','英語',88)
insert into #score(name,subject,score) values('李明','語文',60)
insert into #score(name,subject,score) values('李明','數學',86)
insert into #score(name,subject,score) values('李明','英語',88)
insert into #score(name,subject,score) values('林風','語文',74)
insert into #score(name,subject,score) values('林風','數學',99)
insert into #score(name,subject,score) values('林風','英語',59)
insert into #score(name,subject,score) values('嚴明','英語',96)
--3.取每個學科的前3名數據
select * from
(
select subject,name,score,ROW_NUMBER() over(PARTITION by subject order by score desc) as num from #score
) T where T.num = 3 order by subject
--4.刪除臨時表
truncate table #score
drop table #score

語法形式:ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2)
解釋:根據COL1分組,在分組內部根據 COL2排序,而此函數計算的值就表示每組內部排序后的順序編號(組內連續的唯一的)
您可能感興趣的文章:
  • SQLSERVER分頁查詢關于使用Top方式和row_number()解析函數的不同
  • SQLServer中Partition By及row_number 函數使用詳解
  • sqlServer使用ROW_NUMBER時不排序的解決方法
  • sqlserver2005使用row_number() over分頁的實現方法
  • SqlServer2005中使用row_number()在一個查詢中刪除重復記錄的方法
  • SqlServer 2005中使用row_number()在一個查詢中刪除重復記錄
  • SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法
  • sqlserver 通用存儲過程分頁代碼(附使用ROW_NUMBER()和不使用ROW_NUMBER()兩種情況性能分析)
  • SQL Server中row_number分頁查詢的用法詳解

標簽:荊州 阜陽 臨滄 通化 那曲 泰州 齊齊哈爾 海北

巨人網絡通訊聲明:本文標題《sqlserver巧用row_number和partition by分組取top數據》,本文關鍵詞  sqlserver,巧用,row,number,和,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sqlserver巧用row_number和partition by分組取top數據》相關的同類信息!
  • 本頁收集關于sqlserver巧用row_number和partition by分組取top數據的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 台南市| 巫溪县| 海伦市| 军事| 梨树县| 武安市| 营山县| 衡南县| 吉隆县| 康马县| 和田市| 高淳县| 永康市| 祁阳县| 龙门县| 荣昌县| 勐海县| 昆明市| 启东市| 双鸭山市| 青海省| 长春市| 东源县| 陇川县| 东辽县| 通辽市| 彭山县| 惠东县| 长春市| 庆安县| 安阳市| 北海市| 台山市| 略阳县| 武陟县| 福泉市| 南川市| 资源县| 肥东县| 双桥区| 上虞市|