我想根据日期获取每个Block(行)的最新数据。但如果今天的日期数据不可用,那么之前的日期。我从链接下面的stackoverflow得到了一个答案。但查询是在Mysql中我需要在MSSQL中进行类似的查询。在我的情况下,今天可用的数据块很少,但是对于其他不可用的块。因此,我需要所有块的数据,而这些块中的块数据不可用,我需要从之前的日期开始。
retrieve the last inserted row from each user in database
SELECT *
FROM (
SELECT
Users.*,
CASE WHEN @lst=User THEN @row:=@row+1 ELSE @row:=0 END row,
@lst:=User
FROM
Users
WHERE
User IN ('ina','chris','john')
ORDER BY
User, Date_ins DESC
) s
WHERE
row=0
先谢谢。
答案 0 :(得分:1)
SQL Server等效项将使用row_number()
:
select u.*
from (select u.*, row_number() over (partition by user order by date_ins desc) as seqnum
from users u
where u.User IN ('ina','chris','john')
) u
where seqnum = 1;