6 sql
我有一个看起来像这样的temptable:
RequestID | CreatedDate | HistoryStatus
CF-0000001 | 8/26/2009 1:07:01 PM | For Review
CF-0000001 | 8/26/2009 1:07:01 PM | Completed
CF-0000112 | 8/26/2009 1:07:01 PM | For Review
CF-0000113 | 8/26/2009 1:07:01 PM | For Review
CF-0000114 | 8/26/2009 1:07:01 PM | Completed
CF-0000115 | 8/26/2009 1:07:01 PM | Completed
Run Code Online (Sandbox Code Playgroud)
而我希望表格看到最后是这样的:
RequestID | CreatedDate | HistoryStatus
CF-0000001 | 8/26/2009 1:07:01 PM | Completed
CF-0000112 | 8/26/2009 1:07:01 PM | For Review
CF-0000113 | 8/26/2009 1:07:01 PM | For Review
CF-0000114 | 8/26/2009 1:07:01 PM | Completed
CF-0000115 | 8/26/2009 1:07:01 PM | Completed
Run Code Online (Sandbox Code Playgroud)
即CF-0000001应删除副本.
如果有多个重复的行仍然返回不重复的行,我该如何返回或者我应该只选择一行?
Him*_*dri 11
如果要基于RequestID和CreatedDate显示重复行之一并显示最新的HistoryStatus,请尝试此操作.
with t as (select row_number()over(partition by RequestID,CreatedDate order by RequestID) as rnum,* from tbltmp)
Select RequestID,CreatedDate,HistoryStatus from t a where rnum in (SELECT Max(rnum) FROM t GROUP BY RequestID,CreatedDate having t.RequestID=a.RequestID)
Run Code Online (Sandbox Code Playgroud)
或者如果您只想选择CreatedDate中的一个重复行并显示最新的HistoryStatus,请尝试下面的查询.
with t as (select row_number()over(partition by CreatedDate order by RequestID) as rnum,* from tbltmp)
Select RequestID,CreatedDate,HistoryStatus from t where rnum = (SELECT Max(rnum) FROM t)
Run Code Online (Sandbox Code Playgroud)
或者,如果您想选择仅考虑请求ID的重复行之一并显示最新的HistoryStatus,请使用下面的查询
with t as (select row_number()over(partition by RequestID order by RequestID) as rnum,* from tbltmp)
Select RequestID,CreatedDate,HistoryStatus from t a where rnum in (SELECT Max(rnum) FROM t GROUP BY RequestID,CreatedDate having t.RequestID=a.RequestID)
Run Code Online (Sandbox Code Playgroud)
我在sql server 2005中编写的所有上述查询.
Cha*_*ana -1
如果这是一个 SQL 问题,并且我明白你在问什么(并不完全清楚),只需在查询中添加不同的
Select Distinct * From TempTable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100776 次 |
| 最近记录: |