我有一個訪問日誌,它記錄了應用程序中各個點的用戶名和時間戳。我想看看我是否可以估計他們在應用程序中花費的時間。基本上我想根據時間戳將每條記錄加入最後的訪問記錄,所以我可以計算出時間差。基於TimeStamp加入最後一條記錄
我想不出如何加入時間戳小於當前記錄的第一條記錄。有什麼辦法做到這一點?
我有一個訪問日誌,它記錄了應用程序中各個點的用戶名和時間戳。我想看看我是否可以估計他們在應用程序中花費的時間。基本上我想根據時間戳將每條記錄加入最後的訪問記錄,所以我可以計算出時間差。基於TimeStamp加入最後一條記錄
我想不出如何加入時間戳小於當前記錄的第一條記錄。有什麼辦法做到這一點?
嘗試這樣:
SELECT A.UserName, A.EntryDate, DATEDIFF(ss,A.EntryDate, B.EntryDate) SecondsDuration
FROM YourTable A
OUTER APPLY (SELECT MAX(EntryDate) EntryDate
FROM YourTable
WHERE UserName = A.UserName AND EntryDate < A.EntryDate) B
這似乎工作,謝謝。我將不得不閱讀有關申請,我以前從未使用過。 – Kratz
我想不出如何加入到第一記錄,其時間戳小於當前記錄。有什麼辦法做到這一點?
你幾乎放棄自己的答案:
的東西類似下面應該工作:
SELECT
lt.*,
lastentry.timeofEntryColumn,
DATEDIFF(second, lt.timeofEntryColumn, lt.timeofEtnryColumn) AS DifferenceinSeconds
FROM logTable lt
LEFT OUTER JOIN logtable AS lastentry
ON lastentry.ID = (SELECT TOP 1 ID FROM logtable lt2
WHERE lt2.timeofEntryColumn < lt.timeofEntryColumn
ORDER BY lt2.timeofEntryColumn desc)
當然,你應該多一些添加到此:也許到外的條件加入該需要用戶ID匹配...
如何添加條件以從同一用戶中選擇最後一個條目?這只是發現到最後一個條目的時間差。我如何將該條件添加到子查詢中? – Kratz
你使用的是什麼數據庫引擎和版本? – Lamak
哎呀,忘了。 MS-SQL 2008 – Kratz