我有一個使用 sqlite3 的資料庫,其中一列將日期(rfc3339 格式)存盤為文本。
我的資料庫正在存盤各種物件的每日值。在下面的示例中,A 和 B。
| ID | 物件 | 日期 | 價值 |
|---|---|---|---|
| 13 | 一種 | 2022-05-22T20:02:20.465515Z | 413 |
| 223 | 一種 | 2022-05-23T09:23:39.591774Z | 517 |
| 25 | 乙 | 2022-05-22T20:02:20.469512Z | 963 |
| 948 | 乙 | 2022-05-23T09:23:39.600809Z | 1124 |
我想要做的是只為每個物件選擇最新的日期。物件在另一個資料庫中被參考。期望的結果是:
| ID | 物件 | 日期 | 價值 |
|---|---|---|---|
| 223 | 一種 | 2022-05-23T09:23:39.591774Z | 517 |
| 948 | 乙 | 2022-05-23T09:23:39.600809Z | 1124 |
如果我有數百個 obj A、B、C 條目……我如何才能為每個物件選擇最新的條目?(即按列 obj 上的值分組)
uj5u.com熱心網友回復:
您可以使用ROW_NUMBER()諸如
SELECT id, obj, date, value
FROM ( SELECT t.*,
ROW_NUMBER() OVER
(PARTITION BY obj
ORDER BY strftime('%Y-%m-%dT%H:%M:%S.%fZ', date) DESC) AS rn
FROM t ) AS tt
WHERE rn = 1
uj5u.com熱心網友回復:
使用簡單的聚合:
SELECT id, obj, MAX(date) AS date, value
FROM tablename
GROUP BY obj;
SQLite 為每obj行回傳最新的date.
供參考:聚合查詢中的裸列
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480470.html
上一篇:“”附近:使用androidstudio的SQL中的語法錯誤
下一篇:在sql中為兩列插入約束
