次のクエリがあります。
SELECT @rn:=@rn+1 AS rank, pet_name, pet_count
FROM (
SELECT pet_name, COUNT(*) AS pet_count
FROM pets
WHERE pet_breed="cat"
GROUP BY pet_name
ORDER BY pet_count DESC
) t1, (SELECT @rn:=0) t2
次のような出力が生成されます。
1 Kitty 87
2 Smokey 81
3 Bella 80
4 Oreo 63
5 Charlie 63
6 Tiger 62
7 Lucy 62
8 Jack 61
9 Tigger 60
問題は、Oreo と Charlie、Tiger と Lucy は両方とも 63 であるため、結果が次のようになるため、同じようにランク付けする必要があることです。
1 Kitty 87
2 Smokey 81
3 Bella 80
4 Oreo 63
4 Charlie 63
5 Tiger 62
5 Lucy 62
6 Jack 61
7 Tigger 60
思い通りにするための微調整がわかりません。
提案?