SQL语句分组获取记录的第一条数据的方法_MsSql

  • A+
所属分类:MSSQLSERVER


使用Northwind 数据库


首先查询Employees表


查询结果:



city列里面只有5个城市


使用ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) 先进行分组 注:根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).


sql语句为:


select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,City,ROW_NUMBER() over(partition by City order by EmployeeID) as new_index  
from Employees


执行结果图:



可以看到是按照City分组,EmployeeID排序。


select出分组中的第一条记录


执行语句:


select * from
(select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,City,ROW_NUMBER() over(partition by City order by EmployeeID) as new_index  
from Employees) a where a.new_index=1


执行结果图:



  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: