【发布时间】:2021-01-31 00:58:28
【问题描述】:
我正在尝试简单地选择具有最新时间戳的值,但由于某种原因,我出现了某种大脑冻结。
下面的代码是选择所有记录:
SELECT S.idindicator, S.val ,[Time] = MAX(CAST(S.valTimestamp as date)), S.valTimestamp
FROM Status as S
WHERE S.INVALID = 0
AND S.id = 16888
GROUP by S.idindicator, S.val, S.valTimestamp
ORDER BY S.valTimestamp DESC
我如何简单地选择具有最新日期的val,即 75.00?
注意:我已经使用相关子查询完成了它,但是,它将它变成了一个昂贵的查询。
【问题讨论】:
-
SELECT TOP 1 S.val FROM ... -
你不能使用 ORDER BY 因为
SELECT TOP 1 FROM (会把它变成一个子查询,如果我没记错的话 -
@user3396351 你试过了吗?
-
是的,我试过了,ORDER BY 不能在子查询中使用
-
SELECT TOP <n>返回前 n 行。你只想要第一个?
标签: sql sql-server datetime sql-order-by greatest-n-per-group