MySQL中有没有像fat_rank()和row_number()这样的函数?

时间:2015-09-10 06:45:15

标签: mysql database row-number

MySQL中是否有像dense_rank()row_number()那样的函数,如Oracle和其他DBMS提供的函数?

我想在查询中生成一个id,但在MySQL中这些函数不存在。还有其他选择吗?

4 个答案:

答案 0 :(得分:1)

MySQL并不支持这些功能,但你可以自己模仿它们。无耻地链接到我的ROW_NUMBER, RANK and DENSE_RANK functions in MySQL

解决方案

答案 1 :(得分:1)

我们现在有..

select ename, sal, dense_rank() over (order by sal desc)rnk
from emp2 e
order by rnk;

答案 2 :(得分:1)

DENSE_RANK()函数在MySQL 8.0版中可用。因此,如果您使用的是MySQL 8.0版,则可以运行此命令,

SELECT name, DENSE_RANK() OVER ( ORDER BY value ) my_rank FROM table_name;

答案 3 :(得分:-1)

MySQL版本8现在具有ROW_NUMBER。 Documentation

示例:

SELECT 
    ROW_NUMBER() OVER (ORDER BY s.Id) AS 'row_num', 
    s.product,
    s.title
FROM supplies AS S