sql - 从 PostgreSQL 表中查找具有最新日期的条目

标签 sql postgresql select

以下 PostgreSQL SELECT 查询总是返回一个结果,因为 performance.query_plan 表有多个具有不同 TIMESTAMP 值的条目:

SELECT * FROM
  performance.query q,
  performance.query_plan AS qp
WHERE
  q.idx = qp.queryidx
  AND q.newplanneeded > qp.ts
LIMIT 1;

performance.query_plan 表中的这些条目中,我只对具有最新时间戳值的条目感兴趣(存储在 q.newplanneeded 列中)。我如何表达 WHERE 条件中的 qp.ts 应该等于 performance.query_plan 表中最新添加的行?

最佳答案

SELECT  (q).*, (qp).*
FROM    (
        SELECT  q,
                (
                SELECT  qp
                FROM    query_plan qp
                WHERE   qp.queryidx = q.idx
                ORDER BY
                        ts DESC
                LIMIT   1
                ) qp
        FROM    query q
        ) qv
WHERE   (q).newplanneeded > (qp).ts
ORDER BY
        (q).idx
LIMIT   1

关于sql - 从 PostgreSQL 表中查找具有最新日期的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170139/

相关文章:

ruby-on-rails - 使用 Arel 按频率排序记录

MYSQL Select Join - 在连接上指定唯一值

mysql - 是否可以对查询的输出进行透视?

mysql - 查询对同一个表的多个引用

postgresql - 将一列与另一列(数组)的每个元素进行比较

sql - 选择 ID 列表的最新条目

php - 多个选择到数据库字段

mysql - 如何只获取mysql SELECT语句的前几条匹配

sql - 如何在同一批处理语句中更新新添加的列

mysql - 搜索日期时查询显示无结果