gpt4 book ai didi

sql - PostgreSQL:如何获取 GROUP BY 的 max()?

转载 作者:行者123 更新时间:2023-11-29 14:26:21 25 4
gpt4 key购买 nike

我有一个名为 history 的表,其中包含字段 idlastnameeventdate

它保存在我办公室工作的人的事件,如“进入办公室”、“离开办公室”、“生病”、“假期”等。

我需要获取每个人的最后一个事件。

这是我尝试过的方法,但它不起作用:

SELECT lastname, event, max(date)
FROM personshistory
GROUP BY lastname, event;

最佳答案

您可以使用 distinct on:

select distinct on (lastname) ph.*
from personshistory
order by lastname, date desc;

distinct on 是一个非常方便的 Postgres 扩展。它为括号中表达式的每个值保留一行。特定行由 order by 子句确定——基于 distinct on 键之后的键。

关于sql - PostgreSQL:如何获取 GROUP BY 的 max()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57481900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com