将 row_number 与视图一起使用?
Posted
技术标签:
【中文标题】将 row_number 与视图一起使用?【英文标题】:Using row_number with a view? 【发布时间】:2021-03-05 16:47:43 【问题描述】:我想将row_number
与视图一起使用,以便为每一行分配一个新的顺序id
CREATE VIEW feed AS
SELECT * FROM (
SELECT id, title FROM books
UNION ALL
SELECT id, title FROM movies) alias
ORDER BY id
我试过了:
CREATE VIEW feed AS
SELECT *, ROW_NUMBER() OVER FROM (
SELECT id, title FROM books
UNION ALL
SELECT id, title FROM movies) alias
ORDER BY id
但运气不好,我哪里错了?
【问题讨论】:
【参考方案1】:OVER
关键字后面必须跟()
:
CREATE VIEW feed AS
SELECT *, ROW_NUMBER() OVER (ORDER BY id) FROM (
SELECT id, title FROM books
UNION ALL
SELECT id, title FROM movies) alias;
如果您没有 PARTITION 或 ORDER BY,括号可以为空,但在这种情况下,我会将 ORDER BY 放在里面,所以您确定它适用于 ROW_NUMBER()。
【讨论】:
谢谢,如何命名新创建的 id 列?例如view_id
在列后面跟着AS
,然后是别名。与定义任何其他列别名相同。以上是关于将 row_number 与视图一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
Row_number() 和 group by 一起不起作用
INDEX 用于提高包含 ROW_NUMBER OVER PARTITION 的视图的性能