我有一个包含500,000多行的表格和以下列:
Symbol
,ExternalCode
,ExternalCodeType
,StartDate
Symbol
应该是唯一的,但事实并非如此。
有少量行(~60)对Symbol
具有相同的值,但具有不同的ExternalCode
+ StartDate
对。
我想创建一个独特的表格,以便当同一个Symbol
有多个条目时,我只会使用最新的StartDate
。
有没有简单/优雅的方法来做到这一点?
答案 0 :(得分:1)
在SQL-Server中,这可以在没有JOIN的情况下解决 试试这个:
SELECT *
FROM (SELECT SYMBOL,
STARTDATE,
EXTERNALCODE,
EXTERNALCODETYPE,
Row_number()
OVER (
PARTITION BY SYMBOL
ORDER BY STARTDATE DESC) RN
FROM TABLENAME) T
WHERE T.RN = 1
ROW_NUMBER函数启动一系列新的'按日期排序的ID(以使最新值始终等于1)并按符号分区,以便每个符号都有自己的ID集。
希望答案清楚。