【发布时间】:2019-08-07 15:59:27
【问题描述】:
我正在尝试根据 col2 中的值更新 col3。但我希望更新特定于其在 col1 中的唯一标识符(预订参考)。
我有过去一年的历史数据。每个预订参考每个月都会更新,因此我的表中每个唯一的预订参考都有 12 个值。
我正在尝试将 col3 设置为显示与该预订参考相关联的绝对最短日期。因此,在一个预订参考的 12 条记录中,如果最早的开始日期是 2018 年 3 月 12 日,那么它将将该日期放在与该预订参考关联的所有行的 col3 中。
我仔细查看了 stackoverflow 和 postgres 文档。我知道这应该作为一个聚合函数来完成,但是我还没有找到一个有效的解决方案。
UPDATE table1
SET "col3" = (SELECT MIN("col2")
FROM table1)
上面的代码遵循我认为应该工作的逻辑,但是它正在更新所有具有绝对最早日期的行,而不管与之关联的预订参考 (col1) 是什么。
我知道 GROUP BY 可能用于解决此问题,但我不知道如何正确包含它。
【问题讨论】:
标签: postgresql sql-update