我在SQL Server中有一个表,格式如下:
我想根据以下条件获取行:
Customer_ID
和Order_Number
,则仅返回日期最长的那些行所以在这种情况下,结果将是第3、4和5行。
关于如何使用SQL查询实现此目标的任何想法?该表没有主键或唯一键。
答案 0 :(得分:2)
使用窗口功能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
或使用关联的子查询
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
)