小编roy*_*fal的帖子

“where”中使用的 RANK 返回无效列,但存在于结果集中

我基本上有一张带有date, timestamp, DID,的表coordinates

我想要一个查询,该查询将返回包含第 X 天的最后一个坐标、第 X+1 天的第一个坐标以及坐标的行。所以它只会返回有 2 个连续日期的结果。

这就是我想出的。一直试图让这个查询工作,它几乎是完美的,但我只需要添加注释掉的where条件,它就会完全符合我的要求。但是当我取消注释时,我收到一个错误“列不存在”:

SELECT  a.timestamp_intersecting_date d1,b.timestamp_intersecting_date d2,   
        a."DID", 
        a.timestamp_intersecting_max t1, b.timestamp_intersecting_min t2,
        RANK () OVER ( 
          PARTITION BY a.timestamp_intersecting_date
          ORDER BY a.timestamp_intersecting_max DESC
       ) timestamp_d1_rank ,
        RANK () OVER ( 
          PARTITION BY b.timestamp_intersecting_date
          ORDER BY b.timestamp_intersecting_max ASC
       ) timestamp_d2_rank,
        a.coords_centroid, b.coords_centroid
FROM
    signals a
INNER JOIN signals b ON (a."DID" = b."DID")
WHERE (b.timestamp_intersecting_date = a.timestamp_intersecting_date + INTERVAL '1 DAY')
AND a."DID" = b."DID" …
Run Code Online (Sandbox Code Playgroud)

postgresql

5
推荐指数
2
解决办法
1000
查看次数

标签 统计

postgresql ×1