Mysql
 sql >> Base de données >  >> RDS >> Mysql

requête mysql pour trouver la plus longue course dans une colonne

SELECT winner, MAX(winningStreak) FROM (
SELECT
winner,
IF([email protected], @rownum:[email protected]+1, @rownum:=1) AS winningStreak,
@prev:=winner
FROM
yourTable
, (SELECT @prev:=NULL, @rownum:=1) vars
/*ORDER BY whateverDeterminesTheOrderOfTheWinners*/
)sq
GROUP BY winner
ORDER BY winningStreak DESC

Vous avez besoin d'une autre colonne qui détermine l'ordre des gagnants comme vous les avez répertoriés et ajustez la partie sous-commentée de la requête. En dehors de cela, cette requête fonctionne, mais ce serait vraiment plus simple en PHP.

Voir en direct ici .