【问题标题】:SQL query to get latest data blockwiseSQL查询以逐块获取最新数据
【发布时间】:2014-09-17 02:36:17
【问题描述】:

我想根据日期获取每个 Block(row) 的最新数据。但如果今天的日期数据不可用,那么之前的日期。我从以下链接的 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

提前致谢。

【问题讨论】:

    标签: sql sql-server


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多