【问题标题】:Using row_number with a view?将 row_number 与视图一起使用?
【发布时间】: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

但运气不好,我哪里错了?

【问题讨论】:

    标签: mysql window-functions


    【解决方案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,然后是别名。与定义任何其他列别名相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 2013-08-22
    相关资源
    最近更新 更多