服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - SQL语句分组获取记录的第一条数据的方法

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

2019-12-20 21:00MSSQL教程网 Sql Server

SQL语句分组获取记录的第一条数据的方法,使用Northwind 数据库为例子

使用Northwind 数据库

首先查询Employees表

查询结果:

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

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语句分组获取记录的第一条数据的方法

可以看到是按照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语句分组获取记录的第一条数据的方法

延伸 · 阅读

精彩推荐