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

 
//来自于别人
使用Northwind 数据库

  首先查询Employees表

  查询结果:
SQL语句分组获取记录的第一条数据的方法_第1张图片
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

  执行结果图:
SQL语句分组获取记录的第一条数据的方法_第2张图片
 可以看到是按照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

  执行结果图:
SQL语句分组获取记录的第一条数据的方法_第3张图片

你可能感兴趣的:(sql)