【发布时间】:2020-04-02 05:09:17
【问题描述】:
我正在使用 MariaDB IMDB 电影数据集,并试图解决以下问题。电影表包含 id、name、rank 和 year 列
当我尝试执行以下查询时出现以下错误
SELECT
SUM(T3.MOVIE_PER_YEAR),
T3.GROUP_PER_DECADE
FROM
(
SELECT
CEIL(T2.ROW_NUM/10) AS GROUP_PER_DECADE,
T2.MOVIE_PER_YEAR,
T2.YEAR
FROM
(
SELECT
ROW_NUMBER() OVER (ORDER BY T1.YEAR ASC) AS row_num,
T1.MOVIE_PER_YEAR,
T1.YEAR
FROM
(SELECT
COUNT(M.id) AS MOVIE_PER_YEAR
,M.year
FROM
movies M
GROUP BY
M.year
)T1
)T2
)T3 GROUP BY GROUP_PER_DECADE;
错误:-
相同类型的查询在 Oracle DB 中运行。
http://sqlfiddle.com/#!4/cdf8e3/9
请帮帮我。
【问题讨论】:
-
我实际上没有看到您的查询存在分组问题。您确定上述查询是您在 MariaDB 上运行的逐字记录吗?
-
MariaDB 10.1 不支持
ROW_NUMBER -
MariaDB 支持 row_number() 函数。 mariadb.com/kb/en/library/row_number
-
"MariaDB 从 10.2 开始" 您的问题被标记为
mariadb-10.1,如果不正确,请编辑标签。 -
添加表别名后,相同的查询在Oracle 和MariaDB 10.2+ 上运行良好