Home > Net >  Selecting an entry from PostgreSQL table based on time and id using psycopg2
Selecting an entry from PostgreSQL table based on time and id using psycopg2

Time:02-01

I have the following table in PostgreSQL DB:

DB exempt

I need a PostgreSQL command to get a specific value from tbl column, based on time_launched and id columns. More precisely, I need to get a value from tbl column which corresponds to a specific id and latest (time-wise) value from time_launched column. Consequently, the request should return "x" as an output.

I've tried those requests (using psycopg2 module) but they did not work:

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)

CodePudding user response:

Looks like a simple ORDER BY with a LIMIT 1 should do the trick:

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

The WHERE clause filters results by the provided id, the ORDER BY clause ensures results are sorted in reverse chronological order, and LIMIT 1 only returns the first (most recent) row

  • Related