Алиасинг таблицы в оконной функции? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь создать псевдоним таблицы в оконной функции, но не уверен, что я делаю неправильно, так как при псевдониме выдается ошибка, что столбцы не могут быть разрешены

    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

1 Ответ

2 голосов
/ 12 июня 2019

Вы использовали псевдоним e в самом внешнем select. Однако в этом псевдониме нет ничего общего. Внутренний from не «протягивается» таким образом (хотя области видимости «достигают» другим способом).

Итак:

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
...