将 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 与视图一起使用?的主要内容,如果未能解决你的问题,请参考以下文章