获取psql中多个id的最新记录

时间:2015-12-22 19:19:41

标签: psql

我有一个表,我有相同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”数据而不是最新记录。

请帮忙。

1 个答案:

答案 0 :(得分:0)

你必须使用DISTINCT

SELECT 
DISTINCT ON (vendor_id) data  
FROM TABLE 
ORDER  BY vendor_id, "created_at" DESC;