sql >> Databasteknik >  >> RDS >> Mysql

mysql-fråga för att hitta den längsta körningen i en kolumn

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

Du behöver en annan kolumn som bestämmer ordningen på vinnarna som du har listat dem och justera den utkommenterade delen av frågan. Bortsett från det fungerar den här frågan, men det skulle verkligen vara lättare att göra i PHP.

Se den live här .



  1. Slå samman två tabeller, matcha en kolumn med flera värden

  2. Använder ActiveRecord för att uppnå komplexa relationer i Rails

  3. Hur ELT() fungerar i MariaDB

  4. Hitta anslutningssträng för att ansluta till MySQL Server 5.1.50 med OleDbConnection