我有一个页面显示每个用户的10条消息(不要问我为什么)
我有以下代码:
SELECT *, row_number() over(partition by user_id) as row_num
FROM "posts"
WHERE row_num <= 10
它不起作用.
当我这样做:
SELECT *
FROM (
SELECT *, row_number() over(partition by user_id) as row_num FROM "posts") as T
WHERE row_num <= 10
它确实有效.
为什么我需要嵌套查询来查看row_num列?顺便说一句,在第一个请求中我实际上在结果中看到它但不能使用where该列的关键字.
它似乎与任何查询都是相同的"规则",列别名对WHERE子句不可见;
这也将失败;
SELECT id AS newid
FROM test
WHERE newid=1; -- must use "id" in WHERE clause
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |