W MySQL nie ma funkcji rankingu. Najbliższe, co możesz uzyskać, to użycie zmiennej:
SELECT t.*,
@rownum := @rownum + 1 AS rank
FROM YOUR_TABLE t,
(SELECT @rownum := 0) r
więc jak to działa w moim przypadku? Potrzebuję dwóch zmiennych, po jednej dla col1 i col2? Col2 musiałby jakoś zresetować, gdy zmieni się col1..?
Tak. Gdyby to było Oracle, mógłbyś użyć funkcji LEAD, aby osiągnąć szczyt przy następnej wartości. Na szczęście Quassnoi obejmuje logikę tego, czego potrzebujesz zaimplementować w MySQL .