sql - 在窗口函数中为表格起别名?
问题描述
我正在尝试在窗口函数中为表起别名,但不确定我做错了什么,因为当我给它起别名时,它给出了无法解析列的错误
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
解决方案
您在最外层使用了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
推荐阅读
- php - Woo Commerce 仅允许一种类型的产品变体
- css - 如何在没有动画里程表的情况下“重置”css位置?
- typescript - Typescript 中类型的引用透明性
- r - R中的三项式回归问题
- reactjs - 如何使用 Nextjs 将 useRouter 推送到新的 url?
- python - 如何使用 webdriver selenium 从标签中单击按钮
- android - Cordova android:关闭inappbrowser时退出应用程序
- python - Python Dataframe 使用 Numpy 逻辑操作丢弃坏列表
- javascript - parseFloat 忽略小数点后的字符
- python - 代码不会将嵌入发送到不和谐的 webhook