SQL去除重复数据
程序员文章站
2022-04-14 16:43:52
...
在SQL查询中,需要去除重复选项,并且按照时间来进行排序,取排序分组中第一条数据。
然后在网上找到了解决方案,使用分析函数row_number() over (partiion by … order by …)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。
其中,partition by 是指定按哪些字段进行分组,这些字段值相同#的记录将在一起编号;order by则是指定在同一组中进行编号时是按照怎样的顺序。
示例(SQL Server 2005或以上适用):
select s.[SAPCode]
,s.[Specifications]
,s.[Material]
,s.[UnitPrice]
from (
select SAPCode,Specifications,Material, UnitPrice,row_number() over (partition by [SAPCode] order by SAPCode,LastOperateDatetime DESC) as group_idx
from [OASystem].[dbo].[SPWMS_SpareParts]
) s
where s.group_idx = 1) as b
问题瞬间解决!
上一篇: List去除重复数据的五种方式
下一篇: 爬取华农兄弟哔哩哔哩所有视频信息