Oracle 有两个函数——rank() 和dense_rank()——我发现它们对某些应用程序非常有用。我现在正在 mysql 中做一些事情,想知道他们是否有与那些相同的东西?
没有什么直接等效的,但是你可以用一些(不是非常有效的)自连接来伪造它。MySQL 查询指南集合中的一些示例代码:
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 |
+-------+-------+------+
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5195 次 |
最近记录: |