oracle - MySQL 等同于 ORACLES rank()

标签 oracle mysql

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/

相关文章:

mysql - 如何更新具有重复主键的表?

oracle - 在 Oracle 中生成随机数

mysql - 自动加密varchar MySQL

database - 如何在 oracle 11g 快捷版中创建数据库?

sql - 如何在oracle sql存储过程中转换时区?

sql - 3 个表上的错误代码 1005 错误编号 121 我做错了什么?

php - 我该如何翻译 $intNumField = mysql_num_fields($objQuery);进入面向对象的Php

php - 如何显示 UNIQUE KEY 的错误

mysql - 在数据库中存储大质数

Oracle 的 TO_DATE 中的 Java Date.toString