sql >> Database >  >> RDS >> Mysql

mysql-query om de langste run in een kolom te vinden

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

Je hebt een andere kolom nodig die de volgorde van de winnaars bepaalt zoals je ze hebt vermeld en pas het commentaargedeelte van de zoekopdracht aan. Afgezien daarvan werkt deze query, maar het zou echt gemakkelijker zijn om in PHP te doen.

Bekijk het hier live .



  1. Hoe debuggen Lock wacht time-out overschreden op MySQL?

  2. Hoe u het einde van de maand kunt krijgen in MariaDB

  3. Met Docker krijg ik de foutmelding:SQLSTATE [HY000] [2002] No such file or directory

  4. Hoe te sorteren op vorige datum in de database?