0

我在 Postgres 中有一张带有天气预报的表格,看起来像这样

在此处输入图像描述

在这里,每 15 分钟同时发布一次风力和太阳预报。我希望使用distinct on()语句从该表中选择最新的风能和太阳能预测。但是,当我仅在time列上使用它时,它会删除风预报,因为该预报在太阳能预报前一分钟被丢弃。我尝试过使用distinct on(time, forecast),但后来订单以某种方式搞砸了,我不再使用最新的dump_date(见下文)

在此处输入图像描述

如何distinct on()在保持顺序的同时在多个列上使用语句?我现在使用的查询是

select
    distinct on ("time", "forecast") *
from table
order by "time"

这个查询保持动态很重要,所以硬编码dump_date对我来说不是一个选择。

4

1 回答 1

1

我会添加dump_date DESCORDER

SELECT DISTINCT ON (time, forecast)
    *
FROM t
ORDER BY time, forecast, dump_date DESC
于 2020-11-27T09:53:43.607 回答