Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage, um die längste Ausführung in einer Spalte zu finden

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

Sie benötigen eine weitere Spalte, die die Reihenfolge der Gewinner bestimmt, wie Sie sie aufgelistet haben, und passen den auskommentierten Teil der Abfrage an. Abgesehen davon funktioniert diese Abfrage, aber in PHP wäre es wirklich einfacher.

Sehen Sie es live hier .