我正在使用SQL Server 2014和Management Studio。让我尝试解释我在做什么。
我有一张看起来类似于以下的表格(非常简化)
我想创建一个查询,如果Well Global ID相同,它将为每个参数获取最新记录。我想要的内容如下所示:
由于我不是一名出色的SQL骑师,所以我需要一点帮助。
我能找到的最接近的东西是以下内容,它没有考虑参数字段,因此如果全局ID匹配,它将仅获取最新记录:
SELECT TOP 1000
[OBJECTID], SampleDate,
Collector, Parameter, Result, Unit,
WellGlobalID, GlobalID
FROM
WellSamples
WHERE
SampleDate IN (SELECT MAX(SampleDate)
FROM WellSamples
GROUP BY WellGlobalID);
使用该ROW_NUMBER
功能。
SELECT *
FROM (
SELECT w.*,
ROW_NUMBER() OVER(PARTITION BY parameter,wellglobalid
ORDER BY sampledate DESC) as RN
FROM WellSamples w
) x
WHERE RN = 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句