我有一個 SQL 表,其中一個欄位可以在多條記錄中具有相同的值。例如:

我想選擇每個的EndTime和。如果有多條記錄相同, 我想選擇最近的記錄并覆寫過去的記錄。UserIdUserIDUserID
我Sqlite在 python 中作業。
uj5u.com熱心網友回復:
您可以使用視窗函式,例如 ROW_NUMBER()
SELECT EndTime, userID
FROM
(
SELECT ROW_NUMBER() OVER (PARTITION BY userID ORDER BY StartTime DESC) AS rn,
t.*
FROM t
) AS tt
WHERE rn = 1
其中 grouping by 由 byuserID提供PARTITION BY userID,選擇最近的值是通過按降序排序提供的StartTime
Demo
uj5u.com熱心網友回復:
您只需要聚合:
SELECT UserID, MAX(StartTime) StartTime, EndTime
FROM tablename
GROUP BY UserID;
因為 SQLite 將為每個UserID具有 max 的行回傳StartTime。
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392857.html
上一篇:如何按順序排除某些字母
