Middle
How to filter only relevant data in an SQL query?
sobes.tech AI
Answer from AI
To filter only current data in an SQL query, you need to define criteria for relevance, which depend on the context of the task. Usually:
- Filtering by date or time (e.g., latest records, current at the moment).
- Filtering by status (e.g., only active records).
- Using flags or indicators of relevance in the table.
Example: select records with the maximum update date for each object:
SELECT t1.*
FROM data_table t1
JOIN (
SELECT object_id, MAX(updated_at) AS max_updated
FROM data_table
GROUP BY object_id
) t2 ON t1.object_id = t2.object_id AND t1.updated_at = t2.max_updated
WHERE t1.status = 'active';
This query will return only the freshest and active data for each object.
You can also use window functions to select relevant data:
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY object_id ORDER BY updated_at DESC) AS rn
FROM data_table
WHERE status = 'active'
) sub
WHERE rn = 1;
This allows getting one current record per object.