Mysql
 sql >> база данни >  >> RDS >> Mysql

Класиране на турнири с множество събития

Можете да емулирате функция за класиране в MySQL, като използвате самостоятелно присъединяване към стойности с по-висок резултат в същото Event и след това преброяване на броя на по-високите резултати за всеки участник:

SELECT s1.Name, s1.Event, s1.Score, COUNT(s2.Name)+1 AS Rank
FROM scores s1
LEFT JOIN scores s2 ON s2.Event = s1.Event AND s2.Score > s1.Score
WHERE s1.Name = 'Bob'
GROUP BY s1.Name, s1.Event, s1.Score
ORDER BY s1.Name, s1.Event

Изход:

Name    Event   Score   Rank
Bob     1       100     1
Bob     2       75      3
Bob     3       80      2

Демо на dbfiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да изчистя паметта, докато изпълнявам дълъг PHP скрипт? опитах unset()

  2. Колоните char/varchar/text/longtext в MySQL заемат ли пълен размер във файловата система дори за частично запълнени клетки?

  3. Избиране на реда с максимум в колона - MySQL

  4. Как да преминете през datagridview 1 и да копирате резултатите от цикъла в datagridview2 в различна форма и DB таблица

  5. Управление на потребителски акаунти, роли, разрешения, удостоверяване PHP и MySQL - част 6