SQL语句分组获取记录的第一条数据的方法
程序员文章站
2023-12-13 16:29:40
使用northwind 数据库
首先查询employees表
查询结果:
city列里面只有5个城市
使用row_number() over(partition...
使用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
执行结果图: