MySQL中是否有像dense_rank()
和row_number()
那样的函数,如Oracle和其他DBMS提供的函数?
我想在查询中生成一个id,但在MySQL中这些函数不存在。还有其他选择吗?
答案 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