我正在使用sql-server 2005選擇10行與時間差最小的sql
嗨,我有用戶表userId和registrationDate。我想在兩個註冊日期之間選擇最短的時間段,當第一個日期是x和其他行是x + 10行。我不介意遊標,因爲我偶爾會運行這個查詢。
我會再次解釋一下,我需要10個用戶註冊之間的最短時間來了解每個特定時間註冊的高邊界是多少。
感謝
我正在使用sql-server 2005選擇10行與時間差最小的sql
嗨,我有用戶表userId和registrationDate。我想在兩個註冊日期之間選擇最短的時間段,當第一個日期是x和其他行是x + 10行。我不介意遊標,因爲我偶爾會運行這個查詢。
我會再次解釋一下,我需要10個用戶註冊之間的最短時間來了解每個特定時間註冊的高邊界是多少。
感謝
,如果你使用的是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
你說的沒錯,你的回答是正是我一直在尋找,但由於英語是我的第三講過語言我無法正確寫出問題。 – eugeneK 2010-10-03 08:07:54