sql >> Base de Datos >  >> RDS >> Mysql

consulta mysql para encontrar la ejecución más larga en una columna

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

Necesita otra columna que determine el orden de los ganadores tal como los ha enumerado y ajuste la parte no comentada de la consulta. Aparte de eso, esta consulta funciona, pero realmente sería más fácil hacerlo en PHP.

Véalo en vivo aquí .