假设我查询了一个名为Items_Run的表,以获得以下结果:

object_id  item_id  run_date
    0       1010    8/1/2023
    1       1020    8/3/2023
    2       1030    8/4/2023
    3       1010    8/5/2023
    4       1020    8/6/2023

以下是查询:

SELECT object_id,  
       item_id,
       run_date
FROM items_run
WHERE run_date > '2023-07-30'

我想调整我的查询,以 Select 仅具有特定Item_id的最新run_date的行.所以它看起来是这样的:

    object_id  item_id  run_date
       0        1010    8/5/2023
       1        1020    8/6/2023
       2        1030    8/4/2023

我试图添加WHERE run_date > '2023-07-30' AND run_date = (SELECT MAX(run_date) FROM items_run),但返回的只是一个空表.我怎么才能在这里实现我的目标呢?

推荐答案

一个简单的集合就能给你想要的东西:

SELECT
    MIN(object_id)
    , item_id
    , MAX(run_date)
FROM items_run
WHERE run_date > '2023-07-30'
GROUP BY item_id
ORDER BY 1; -- first column

Postgresql相关问答推荐

计算两个子查询之间的差异

无法在PostgreSQL中创建方案和表

Haskell仆人发布FormUrlEncode for(向量字符串)字段

如何在生成的列的表达式中使用TIMESTAMP WITH时区列?

如何诊断字符编码问题

即使不对订阅服务器进行任何修改,Postgres逻辑复制也可能发生冲突吗?

我应该使用哪个 postgresql 包?

PostgreSQL 中的 DATEADD 等效项

从 psycopg2 异常中获取错误消息

无法登录 PostgreSQL 数据库

如何在 Postgresql 中正确使用 FETCH FIRST?

如何使用 postgresql 中的存储过程将数据插入表中

我不明白 postgresql 的 nextval() 是如何工作的,有人可以解释一下吗?

Postgres 日期重叠约束

在 postgresql 中,如何在 jsonb 键上返回布尔值而不是字符串?

安装时 postgres 的默认用户

Postgresql 中的 NOT EXISTS 子句

按任意时间间隔计算行数的最佳方法

如果 PostgreSQL count(*) 总是很慢,如何对复杂查询进行分页?

如何为 adminpack 解决 PostgreSQL pgAdmin 错误Server instrumentation not installed?