我有一个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不是我的选择。
发布于 2020-11-27 17:53:44
我会将dump_date DESC添加到ORDER中
SELECT DISTINCT ON (time, forecast)
*
FROM t
ORDER BY time, forecast, dump_date DESChttps://stackoverflow.com/questions/65035092
复制相似问题