首页 > 解决方案 > 查询以基于其他列返回具有重复值的行

问题描述

我在 SQL Server 中有一个表,格式如下:

在此处输入图像描述

我想根据以下条件获取行:

所以这种情况下的结果将是第 3、4 和 5 行。

关于如何使用 SQL 查询来实现这一点的任何想法?该表没有主键或唯一键。

标签: sqlsql-server

解决方案


使用窗口函数row_number()

select * 
from 
   (
   select *, 
         row_number() over(partition by Customer_ID,Order_Number order by date desc) as rn 
   from your_table
   ) t where rn=1

或使用 co-relates 子查询

    select * 
    from t
    where date in (
                   select max(date) 
                   from t t1 
                   where t1.Customer_ID=t.Customer_ID and t1.Order_Number=t.Order_Number
                  )

推荐阅读