【发布时间】:2016-10-04 22:46:06
【问题描述】:
我有一个 postgresql 表,其中我有几个字段,例如 id 和 date。我需要找到该 ID 的最大日期并将其显示到所有 ID 的新字段中。 SQLFiddle 站点没有响应,所以我在 excel 中有一个示例。这是数据的屏幕截图和表格的输出。
【问题讨论】:
标签: sql postgresql date select max
我有一个 postgresql 表,其中我有几个字段,例如 id 和 date。我需要找到该 ID 的最大日期并将其显示到所有 ID 的新字段中。 SQLFiddle 站点没有响应,所以我在 excel 中有一个示例。这是数据的屏幕截图和表格的输出。
【问题讨论】:
标签: sql postgresql date select max
这样的事情可能会奏效:
WITH maxdts AS (
SELECT id, max(dt) maxdt FROM table GROUP BY id
)
SELECT id, date, maxdt FROM table t, maxdts m WHERE t.id = m.id;
请记住,如果没有更多信息,这可能是一个非常低效的查询,但它会为您提供所需的信息。
【讨论】:
您可以使用max 的窗口变体:
SELECT id, date, MAX(date) OVER (PARTITION BY id)
FROM mytable
【讨论】: