sql选择最新值

Mar*_*ane 0 sql

我有以下SQL语句

SELECT [Motor]
      ,[Time]
  FROM [logger].[dbo].[motor]
  WHERE day([Time]) = day(getdate())
  ORDER BY [TIME]
Run Code Online (Sandbox Code Playgroud)

这是一个非常基本的表格,它给出了给定时间的电机状态.

我想要的只是一个select语句,如果可能的话会给我最新的结果.我可以得到它所以它给出了今天的所有结果,但如果我能得到它,那么它只显示最新的结果,这将是伟大的.

Mar*_*ith 5

要"仅显示最新结果",您只需使用 TOP

SELECT TOP (1) [Motor] ,[Time] 
FROM [logger].[dbo].[motor] 
ORDER BY [TIME] desc
Run Code Online (Sandbox Code Playgroud)

或者(如果你想要每个电机的TOP 1 )

WITH cte As
(
SELECT  [Motor] ,
        [Time], 
        ROW_NUMBER() OVER (PARTITION BY [Motor] ORDER BY [TIME] DESC) RN
FROM [logger].[dbo].[motor] 
)
SELECT [Motor] ,[Time]
FROM cte
WHERE RN=1
Run Code Online (Sandbox Code Playgroud)