SQL查询以逐块获取最新数据
Posted
技术标签:
【中文标题】SQL查询以逐块获取最新数据【英文标题】:SQL query to get latest data blockwise 【发布时间】:2014-09-17 02:36:17 【问题描述】:我想根据日期获取每个 Block(row) 的最新数据。但如果今天的日期数据不可用,那么之前的日期。我从以下链接的 *** 中得到了一个答案。但查询在 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
提前致谢。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于SQL查询以逐块获取最新数据的主要内容,如果未能解决你的问题,请参考以下文章