gpt4 book ai didi

SQL 选择 HIGHEST 时间戳为 LOWEST 的记录

转载 作者:行者123 更新时间:2023-12-04 08:58:39 24 4
gpt4 key购买 nike

我有一个包含重复名称和时间戳的数据库
我想检索时间戳按名称分组的最低记录。

table : people
+------------+-------------+
| Name | Timestamp |
+------------+-------------+
| name1 | 0 |
| name1 | 5 |
| name2 | 2 |
| name3 | 3 |
| name2 | 1 |
+--------------------------+
对于处于这种状态的数据库,查询应该返回“name2, 2”,因为 name2 的最大值是所有组的最大值中的最小值。
我一直在思考这个问题,因为我知道我做过类似的查询,但我的 SQL 技能太生疏了。
感谢任何花时间帮助的人:)

最佳答案

似乎您想要最大时间戳最低的名称:如果是这样,您可以使用聚合和限制:

select name
from people
group by name
order by max(timestamp)
limit 1
如果你想允许可能的联系:
select name
from (
select name, rank() over(order by max(timestamp)) rn
from people
group by name
) t
where rn = 1
另一方面,如果你想要整个记录,我会推荐 distinct on在 Postgres 中:
select *
from (
select distinct on (name) *
from people
order by name, timestamp desc
) t
order by timestamp
limit 1

关于SQL 选择 HIGHEST 时间戳为 LOWEST 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63663012/

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