Oracle 有 2 个函数 - rank() 和 dense_rank() - 我发现它们对某些应用程序非常有用。我现在正在用 mysql 做一些事情,想知道他们是否有类似的东西?
最佳答案
没有直接等价的东西,但你可以用一些(不是非常有效的)自连接来伪造它。来自 collection of MySQL query howtos 的一些示例代码:
SELECT v1.name, v1.votes, COUNT(v2.votes) AS Rank
FROM votes v1
JOIN votes v2 ON v1.votes < v2.votes OR (v1.votes=v2.votes and v1.name = v2.name)
GROUP BY v1.name, v1.votes
ORDER BY v1.votes DESC, v1.name DESC;
+-------+-------+------+
| name | votes | Rank |
+-------+-------+------+
| Green | 50 | 1 |
| Black | 40 | 2 |
| White | 20 | 3 |
| Brown | 20 | 3 |
| Jones | 15 | 5 |
| Smith | 10 | 6 |
+-------+-------+------+
关于oracle - MySQL 等同于 ORACLES rank(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1320173/