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

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

  首先查询Employees表

  查询结果:
[img]http://dl2.iteye.com/upload/attachment/0101/5180/ca206dda-bae0-3cbe-85a3-9d99d2bfd2a0.jpg[/img]
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

  执行结果图:
[img]http://dl2.iteye.com/upload/attachment/0101/5184/1be96a98-8f54-37b4-8a05-970b77d2cf4f.jpg[/img]
 可以看到是按照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

  执行结果图:
[img]http://dl2.iteye.com/upload/attachment/0101/5186/bb736312-e63b-38e5-8419-61940f50d4ab.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值