我正在使用 postgres 和 sequelize。我遇到了一種情況,我需要撰寫一個自定義查詢,將記錄分組為特定欄位。我知道對于不用于分組的剩余列,我需要使用聚合函式,例如SUM. 但問題是,對于某些列,我需要獲取最新的列(按 DESC 排序created_at)。我在 sql 中沒有看到這樣做的功能。我是撰寫子查詢的唯一選擇還是有更好的方法?謝謝?
為了更好地理解,如果你看下圖,我希望將記錄分組address。所以查詢后應該只有兩條記錄,一條帶有sydney,另一條帶有new york。但是當談到距離時,我希望查詢的結果包含最近創建的行的距離,即最新的created_at.
所以最后的兩個查詢結果應該是:
sydney 100 2022-09-05 18:14:53.492131 05:45
new york 40 2022-09-05 18:14:46.23328 05:45

uj5u.com熱心網友回復:
select address, distance, created_at
from(
select address, distance, created_at, row_number() over(partition by address order by created_at DESC) as rn
from table) x
where rn = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504851.html
標籤:PostgreSQL 续集.js
上一篇:聚合和分組的子查詢
