在 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
我正在尝试在 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