经过研究并发现 MariaDB 支持通用表表达式 (CTE) 后,我尝试按此排名,但出现错误:
分析过程中发现 3 个错误。
- 之前已发现别名。 (位置 183 处的“位置”附近)
- 需要别名。 (位置 182 处的“”附近)
- 无法识别的关键字。 (位置 183 处的“位置”附近)
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(PARTITION BY year ORDER BY sale DESC ) position FROM sales LIMIT 0, 25' at line 1
所以我猜测错误就在排名之后。怎么了。这是我的代码。
表格列是
employee | year | sale
----------------------
SELECT
employee,
year,
sale,
RANK() OVER (PARTITION BY
year
ORDER BY
sale DESC
) position
FROM
sales;
最佳答案
如果有人遇到同样的问题,请注意仅从版本 10.2 开始支持 CTE
关于mysql - 使用 CTE 在 mysql 中进行 Rank(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52785603/