【问题标题】:Selecting an entry from PostgreSQL table based on time and id using psycopg2使用 psycopg2 根据时间和 id 从 PostgreSQL 表中选择一个条目
【发布时间】:2023-01-31 23:47:59
【问题描述】:

我在 PostgreSQL 数据库中有下表:

DB exempt

我需要一个 PostgreSQL 命令来根据 time_launched 和 id 列从 tbl 列获取特定值。更准确地说,我需要从 tbl 列中获取一个值,该值对应于 time_launched 列中的特定 id 和最新(时间)值。因此,请求应返回“x”作为输出。

我已经尝试过这些请求(使用 psycopg2 模块)但它们没有用:

db_object.execute("SELECT * FROM check_ids WHERE id = %s AND MIN(time_launched)", (id_variable,))

db_object.execute(SELECT DISTINCT on(id,check_id)id,check_id,time_launched,tbl,tbl_1 FROM check_ids order by id,check_id time_launched desc)

【问题讨论】:

    标签: postgresql psycopg2


    【解决方案1】:

    看起来简单的 ORDER BYLIMIT 1 应该可以解决问题:

    SELECT tbl
    FROM check_ids
    WHERE id = %s
    ORDER BY time_launched DESC
    LIMIT 1
    

    WHERE 子句按提供的id 过滤结果,ORDER BY 子句确保结果按时间倒序排序,LIMIT 1 仅返回第一行(最近)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      相关资源
      最近更新 更多