sql根据某一个字段重复只取第一条数据

时间:2023-03-08 17:09:08

sql根据某一个字段重复只取第一条数据

比如上图,取3,4行记录的第一行也就是3行,而不返回4行。

使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用,比如使用下面的方式。

select s.*
from (
select *, row_number() over (partition by [手机号] order by [店铺]) as group_idx
from table_name
) s
where s.group_idx = 1