0
A
回答
0
SELECT A.*,
DATEDIFF(second,B.firstloginonthatday,B.lastlogoutonthatday) AS time_elapsed
FROM YourTable A
INNER JOIN
( SELECT Z.USERID,
CONVERT(DATE,Z.DATE_TIME) AS ONLYDATE,
MIN(Z.DATE_TIME) AS firstloginonthatday,
MAX(Z.DATE_TIME) AS lastlogoutonthatday
FROM
(
SELECT *,
ROW_NUMBER()
OVER
(PARTITION BY USERID,CONVERT(DATE,DATE_TIME) ORDER BY CASE WHEN action = 'logout' THEN DATE_TIME
ELSE NULL END
) AS lastlogout_rn,
ROW_NUMBER()
OVER
(PARTITION BY USERID,CONVERT(DATE,DATE_TIME) ORDER BY CASE WHEN action = 'login' THEN DATE_TIME
ELSE NULL END
) AS firstlogin_rn
FROM Yourtable
) Z
WHERE Z.lastlogout_rn = 1 OR Z.firstlogin_rn = 1
GROUP BY Z.USERID,CONVERT(DATE,Z.DATE_TIME)
) B
ON A.USERID = B.USERID
AND CONVERT(DATE,A.DATE_TIME) = B.ONLYDATE;
+0
你好,感謝你的代碼,非常感謝。由於某些原因,20170418的時間計算不正確,我假設這可能是由於多次登錄和退出導致的,因爲20170419是正確的? –
相關問題
- 1. SQL 2014,SSRS - 使用參數計算時間給出錯誤和錯誤計算
- 2. SQL持續時間計算
- 3. SQL查詢,計算時間
- 4. PL/SQL時間段計算
- 5. 計算時間差指數
- 6. 時間戳計算函數
- 7. PHP時間數學計算
- 8. 計算時間
- 9. 時間計算
- 10. 時間計算
- 11. 計算時間
- 12. 計時器 - 計算時間
- 13. Oracle SQL:動態時間表計算
- 14. 計算SQL查詢的執行時間?
- 15. T-SQL計算平均時間
- 16. oracle sql解決計算的時間
- 17. Linq To Sql按時間括號計算
- 18. 計算SQL Server中的時間差異?
- 19. SQL:高效計算花費的時間
- 20. 在SQL中計算營業時間
- 21. SQL Server中的計算時間列
- 22. 創建LINQ to SQL來計算參數
- 23. 時間戳和時間間隔:NUMTOYMINTERVAL SYSTDATE計算SQL查詢
- 24. 時間間隔計算在時間序列上使用SQL
- 25. 當滿足參數時計算多行的時間
- 26. SQL Server參考計算列
- 27. 計算對數算法的時間
- 28. 時間計算和計數與MySQL
- 29. SQL時區計算
- 30. 計算時間間隔的總秒數
要想從這個社會最好的幫助將是巨大的,如果你能告訴我們,你使用的是什麼SQL數據庫,分享自己當前的代碼,並解釋你到目前爲止已經試過。 –
我正在使用SQL 2008 R2 –
[T-SQL腳本來計算多行之間的時間差異]的可能重複(http://stackoverflow.com/questions/24518781/t-sql-script-to-calculate-time-difference -between-multiple-rows) –