Amy 原创整理|资料核验:2026-11-07
PostgreSQL 的 last_value 取的是当前窗口框架最后一行,而不一定是整个分组的最后一行。使用 ORDER BY 又没有明确写出框架时,默认框架通常只到当前行的同序值末尾。
教学示例:同组的三条记录依次为 10、20、30,排序键各不相同,默认写法在首行看到的末值可能就是 10。若业务需要三行都带上组内最终值,可在 OVER 中明确写 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING,并用能确定先后次序的键排序。
官方来源:
https://www.postgresql.org/docs/current/functions-window.html