【发布时间】:2021-06-04 10:34:47
【问题描述】:
此语句在 SQLite 中有效,但在 Postgres 中无效:
SELECT A.*, B.*
FROM Readings A
LEFT JOIN Offsets B ON A.MeterNum = B.MeterNo AND A.DateTime > B.TimeDate
WHERE A.MeterNum = 1
GROUP BY A.DateTime
ORDER BY A.DateTime DESC
读数表包含电分表读数,每个读数都带有日期戳。 Offsets 表保存用户在将故障仪表替换为重新从零开始的新仪表后输入的调整。如果没有 Group By 语句,查询会为每个抄表返回一行,并在读取日期之前进行每次先前的调整,而我只想要最后一次调整。
我在 Group By for Postgres 上看到的所有文档都表明我应该包含一个我不需要也不能使用的聚合函数(读数列包含从仪表返回的 Modbus 字符串)。
【问题讨论】:
-
嗨,想想看,你想要一个按 A.DateTime 的组,但 pg 不知道你想要什么其他字段。您必须指明如何处理不同的行和相同的 A.DateTime
标签: postgresql group-by greatest-n-per-group