我有包含列的示例表:
ID(guid) Name CreatedDate
B27EB95B-B219-46BD-9E72-A378B3E7FED0 A 2005-11-20 22:49:46.000
33D43825-918D-4DC0-874A-53670563EA03 A 2009-10-03 10:34:00.000
28F26DA6-B144-4C0C-AC2F-4DDD2D74357E B 2011-03-23 08:08:39.000
1491D95F-BA58-41EE-8982-B713DE9DECD7 C 2006-01-18 14:53:12.000
FD25C05D-0C1A-4314-BCA7-F4F33B0E890D C 2006-10-05 14:25:58.000
F4256300-CAA6-4E80-8D1B-B89273274088 D 2008-03-12 08:56:32.000
这应该是我在 SSIS 上的 OledbDatasource。
现在的问题是我需要在 sql 中获取具有最后创建日期及其 Id 的不同名称。
这是输出结果:
ID(guid) Name CreatedDate
33D43825-918D-4DC0-874A-53670563EA03 A 2009-10-03 10:34:00.000
28F26DA6-B144-4C0C-AC2F-4DDD2D74357E B 2011-03-23 08:08:39.000
047ED9C3-DF92-45D5-B295-EE52184116FB C 2006-10-05 14:23:40.000
F4256300-CAA6-4E80-8D1B-B89273274088 D 2008-03-12 08:56:32.000
谢谢您的问候
最佳答案
如果您使用的是 SQL Server 2005 或更高版本,则可以使用 ranking和一个CTE :
WITH ranked AS (
SELECT
ID, Name, CreatedDate,
rn = ROW_NUMBER() OVER (PARTITION BY Name ORDER BY CreatedDate DESC)
FROM atable
)
SELECT
ID,
Name,
CreatedDate
FROM ranked
WHERE rn = 1
关于sql - 如何在 SQL 中根据 LastCreatedDate 选择不同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756861/