Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - Jak wykonać Oracle RANK() OVER (ORDER BY score DESC)

Dodaj kolejną zmienną:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy to najlepsze podejście do tworzenia ścieżki audytu?

  2. Jak dodać ograniczenie not null do istniejącej kolumny w MySQL?

  3. transakcja mysql - wycofaj każdy wyjątek

  4. MySQL usuwa wiele wierszy w jednym warunku zapytania unikalnym dla każdego wiersza

  5. Jak ustawić zestaw znaków i sortowanie bazy danych w MySQL?