sql >> Database teknologi >  >> RDS >> Mysql

ROW_NUMBER() i MySQL

Der er ingen rangeringsfunktionalitet i MySQL. Det tætteste du kan komme er at bruge en variabel:

SELECT t.*, 
       @rownum := @rownum + 1 AS rank
  FROM YOUR_TABLE t, 
       (SELECT @rownum := 0) r

så hvordan ville det virke i mit tilfælde? Jeg har brug for to variable, en for hver af col1 og col2? Col2 skulle på en eller anden måde nulstilles, når col1 ændrede sig..?

Ja. Hvis det var Oracle, kunne du bruge LEAD-funktionen til at toppe ved den næste værdi. Heldigvis dækker Quassnoi logikken for det, du har brug for at implementere i MySQL .



  1. er der en PRODUKT funktion ligesom der er en SUM funktion i Oracle SQL?

  2. Understøttelse af MyIsam-motortransaktioner

  3. PostgreSQL v13 implementering og skalering med ClusterControl 1.8.2

  4. Er OraOLEDB-udbyder i .NET upålidelig på CLOB-felter?