欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL去除重复数据

程序员文章站 2022-04-14 16:43:52
...

在SQL查询中,需要去除重复选项,并且按照时间来进行排序,取排序分组中第一条数据。

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

SQL去除重复数据

问题瞬间解决!