sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Hur man gör en Oracle RANK() OVER(ORDER BY score DESC)

Lägg till en annan variabel:

SET @prev_value = NULL;
SET @rank_count = 0;
SET @rank_increasing = 0;
SELECT score
     , @rank_increasing := @rank__increasing + 1 AS row_num
     , CASE
       WHEN @prev_value = score 
          THEN @rank_count
       WHEN @prev_value := score 
          THEN @rank_count := @rank_increasing
       END AS rank
  FROM ...


  1. Hur ser jag skillnaderna mellan 2 MySQL-dumpar?

  2. Vad är det snabbaste sättet att dumpa och ladda en MySQL InnoDB-databas med mysqldump?

  3. Läs en kolumn från en rad från en MySQL-databas

  4. Använd IN-direktivet för att söka med ett förberett utlåtande