代码之家  ›  专栏  ›  技术社区  ›  eugeneK

选择sql中时差最小的10行

  •  0
  • eugeneK  · 技术社区  · 14 年前

    我会再次解释,我需要最短的时间10个用户之间的注册,以获得一个想法,每一个特定的时间可以注册高边界。

    谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mark Byers    14 年前

    如果您使用的是SQL Server 2005或更新版本,请尝试此查询:

    WITH T1 AS (
        SELECT
            userID,
            registrationDate,
            ROW_NUMBER() OVER (ORDER BY registrationDate) AS rn
        FROM Users
    ), T3 AS (
        SELECT
            T1.registrationDate AS interval_start,
            T2.registrationDate AS interval_end,
            T1.registrationDate - T2.registrationDate AS diff
        FROM T1
        JOIN T1 T2
       ON T1.rn = T2.rn + 5
    )
    SELECT TOP 1 interval_start, interval_end
    FROM T3
    ORDER BY diff