gpt4 book ai didi

sql - 根据每个 parent 的时间戳获取子值

转载 作者:行者123 更新时间:2023-12-04 23:44:29 29 4
gpt4 key购买 nike

我在 SQL Server 2012 中有这两个表 parent-child_tables

对于每个 parent ,我想根据最近的时间戳检索值。

到目前为止,这是我通过一些搜索和反复试验得到的结果。

select m.id, m.Name, mmi.previousValue
from [ManualMeters] m
inner join
(
select mm.ManualMeterId, max(mm.Value) previousValue
from ManualMetersInput mm
--where mm.Timestamp = max(mm.Timestamp)
group by mm.ManualMeterId
having count(*) > 1
) mmi on (mmi.ManualMeterId = m.Id )

所以我希望在这里看到:

ID    Name       previousValue   TimeStamp
1 Meter_1 5000 2016-03-19 12:00
2 Meter_2 3500 2016-03-18 12:15

现在它只显示最大值,但这不是我需要的。我需要最近时间戳中的值。

最佳答案

你可能需要这样的东西:

SELECT   m.id, m.Name, mmi.previousValue, mmi.TimeStamp
FROM [ManualMeters] m
LEFT JOIN
(
SELECT ManualMeterId, Value AS previousValue, TimeStamp, ROW_NUMBER()
OVER (PARTITION BY ManualMeterId ORDER BY TimeStamp DESC) AS RowNum
FROM ManualMetersInput

) mmi ON mmi.ManualMeterId = m.Id And RowNum = 1

关于sql - 根据每个 parent 的时间戳获取子值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36033024/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com