在 window 函数中为 table 添加别名?

Aliasing a table in a window function?

我正在尝试在 window 函数中为 table 添加别名,但不确定我做错了什么,因为当我添加别名时它会给出无法解析列的错误

    SELECT e.city,
       e.time,
       e.day,
       e.id,
       m.id
FROM
  (SELECT *,
          rank() OVER (PARTITION BY e.id,
                                    e.bin
                       ORDER BY e.time ASC) rnk
   FROM table e
   JOIN table2 m 
   on m.id = e.id
   WHERE e.status = 'YES'
   AND e.day BETWEEN date '2019-05-06' and date '2019-05-08')
WHERE rnk = 1

您在最外层 select 中使用了 e 别名。但是,该别名的范围内没有任何内容。内部的 from 不像那样 "reach out" (范围 "reach in" 相反)。

所以:

SELECT e.city, e.time, e.day, e.id
FROM (SELECT e.*,
             rank() OVER (PARTITION BY e.id, e.bin ORDER BY e.time ASC) as rnk
      FROM table e
      WHERE e.status = 'YES' AND
            e.day BETWEEN date '2019-05-06' and date '2019-05-08'
     ) e
-------^ here
WHERE rnk = 1