我想知道如何实现以下方案
我每个月都会得到一些数据。例如下面,如果项目代码重复自己,那么任务就是选择项目代码重复的新行数据,在这种情况下它是1111,以及1112的唯一项目代码。
请让我知道如何实现相同的目标
Source Table:
ProjectCode Header1 Header2 Header3 Header4
1111 NewYork Vivek Khanna Not Assigned
1112 Autralia Srinivas Rajole Assigned
1111 NewYork Parul Sharma Assigned
Desired result:
ProjectCode Header1 Header2 Header3 Header4
1112 Autralia Srinivas Rajole Assigned
1111 NewYork Parul Sharma Assigned
答案 0 :(得分:0)
不太清楚您正在寻找什么,因为您还没有为具有相同项目代码的行指定返回一行而不是另一行的条件。如果您要查找最新条目,则需要添加自动增量或日期时间变量列。然后尝试下面的内容:
SELECT * FROM SourceTable WHERE ID IN (SELECT MAX(ID) FROM SourceTable GROUP BY ProjectCode)
答案 1 :(得分:0)
由于您声明自己有一个自动递增的列,因此您可以使用row_number()
。
在此示例中,我们基于YourAutoIncrementColumn为每个ProjectCode应用一个订单。每个ProjectCode具有最高YourAutoIncrementColumn的行将具有数字1。
with cte as(
select
ProjectCode
,Header1
,Header2
,Header3
,Header4
,RN = row_number() over (partition by ProjectCode order by YourAutoIncrementColumn desc)
from
sourceTable)
select
ProjectCode
,Header1
,Header2
,Header3
,Header4
from
cte
where
RN = 1