【发布时间】:2018-11-24 12:35:08
【问题描述】:
我有一张如下表:
在此表中,对于同一个 CID,CVID 会被克隆多次。所以对于最新的 CVID,我想显示最旧的日期。我想要的输出应该是:
Rextester 链接:http://rextester.com/ENVH45805
【问题讨论】:
标签: sql sql-server sql-server-2008 join
我有一张如下表:
在此表中,对于同一个 CID,CVID 会被克隆多次。所以对于最新的 CVID,我想显示最旧的日期。我想要的输出应该是:
Rextester 链接:http://rextester.com/ENVH45805
【问题讨论】:
标签: sql sql-server sql-server-2008 join
您可以使用row_nunmber窗口函数为同一cvid中的每一行分配一个数字,然后取第一个:
SELECT cid, cvid, cloned_cvid, _date
FROM (SELECT cid, cvid, cloned_cvid, _date,
RANK() OVER (PARTITION BY cvid ORDER BY _date ASC) AS rn
FROM #temp1) t
WHERE rn = 1
【讨论】: