我有一个表,我有相同ID的多个记录。我想使用where子句获取每个id的最新记录。 样本表记录
vendor_id | data | created_at | id
-----------+------------+----------------------------+----
1 | some-data | 2014-01-12 16:32:54.084505 | 2
vendor_id | data | created_at | id
-----------+------------+----------------------------+----
1 | Notsome-dat| 2014-01-13 16:32:54.084505 | 3
我有多个供应商拥有相同的数据。所以我想获得所有供应商的最新记录,我可以用数据过滤它们。我一直在使用以下查询
SELECT VENDOR_ID,MAX(CREATED_AT) FROM TABLE WHERE DATA ILIKE '%Not some%'GROUP BY VENDOR_ID;
但是,这个查询还给了我vendor_id,他们在第二个最新记录中有“Not some”数据而不是最新记录。
请帮忙。
答案 0 :(得分:0)
你必须使用DISTINCT
SELECT
DISTINCT ON (vendor_id) data
FROM TABLE
ORDER BY vendor_id, "created_at" DESC;