Oracle has 2 functions - rank() and dense_rank() - which i've found very useful for some applications. I am doing something in mysql now and was wondering if they have something equivalent to those?
+1
A:
See this links
How to Optimize Rank Data in MySQL
Emulating Analytic (AKA Ranking) Functions with MySQL
Bye.
RRUZ
2009-08-24 02:16:59
2nd link is broken
Andrew from NZSG
2009-08-24 02:24:11
Fixed Now, thanks.
RRUZ
2009-08-24 02:27:15
+1
A:
Nothing directly equivalent, but you can fake it with some (not terribly efficient) self-joins. Some sample code from a 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 |
+-------+-------+------+
chaos
2009-08-24 02:18:46