Sql 基于其他列返回具有重复值的行的查询
我在SQL Server中有一个表,格式如下: 我希望根据以下条件获取行:Sql 基于其他列返回具有重复值的行的查询,sql,sql-server,Sql,Sql Server,我在SQL Server中有一个表,格式如下: 我希望根据以下条件获取行: 如果行具有多个但类似的客户ID和订单编号,则仅返回具有最长日期的行 否则,返回其余行 因此,本例中的结果将是第3、4和5行 您知道如何使用SQL查询实现这一点吗?该表没有主键或唯一键。使用窗口函数行号() 或使用共同关联子查询 select * from t where date in ( select max(date)
- 如果行具有多个但类似的
和客户ID
,则仅返回具有最长日期的行订单编号
- 否则,返回其余行
您知道如何使用SQL查询实现这一点吗?该表没有主键或唯一键。使用窗口函数
行号()
或使用共同关联子查询
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
)
使用窗口功能行号()
或使用共同关联子查询
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
)
基本上,您只是为表描述了一个唯一的键,您可以使用它来标识行(日期、客户ID、订单号)。您可以使用存储过程来实现您的请求。因此,这是一个检查重复值并返回具有最长日期的行的过程。如果没有,则返回其他行。基本上,您只是为表描述了一个唯一的键,可用于标识行(日期、客户ID、订单号)。您可以使用存储过程来实现请求。因此,这是一个检查重复值并返回具有最长日期的行的过程。如果没有,返回其他行。太好了!谢谢Zaynul,太好了!谢谢Zaynul。