检索每个组中的最后一条记录 - 错误

时间:2016-12-06 21:08:59

标签: postgresql group-by greatest-n-per-group

在参考帖子" Retrieving the last record in each group"时,我调整了我的查询(使用postgresql)来查找区域 MATABLE 的最后一个对象> MAZONE ,其属性 created_at 是最新的:

SELECT 
  p1.id, 
  p2.id 
FROM MATABLE p1 
  LEFT JOIN MATABLE p2 
    ON (p1.zone_id = p2.zone_id AND p1.created_at < p2.created_at) 
WHERE 
  p2.id IS NULL 
  AND p1.zone_id = 'MAZONE';

问题是我收到以下回复:

id  | id 
----+----
(0 rows)

但是,如果我像这样过滤我的表:

SELECT 
  p1.id, 
  p2.id 
FROM MATABLE p1 
  LEFT JOIN (SELECT * FROM MATABLE WHERE zone_id='MAZONE') p2 
    ON (p1.zone_id = p2.zone_id AND p1.created_at < p2.created_at) 
WHERE 
  p2.id IS NULL 
  AND p1.zone_id = 'MAZONE';

我得到了一个结果:

id    | id 
------+----
12716 |   
(1 row)

对这个问题有任何想法吗?

提前致谢!

0 个答案:

没有答案