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

Как да изчислим ранга в MySQL

Много пъти трябва да изчислите ранга в MySQL. Можете да поръчате по число или текст, но не можете лесно да изчислите ранга в MySQL. Ето една заявка, която можете да използвате. Просто заменете името на таблицата резултати и имена на колони id, score.

Изчислете ранга в MySQL въз основа на нарастваща стойност

Пример:

CREATE TABLE score (id int, score int);
INSERT INTO scores VALUES (1, 35),(2, 10),(3,30),(4,22),(5,20),(6,18),(7,36);
Scores:
+----+------+
| id | score|
+----+------+
| 1  |   35 |
| 2  |   10 |
| 3  |   30 |
| 4  |   22 |
| 5  |   20 |
| 6  |   18 |
| 7  |   36 |
+----+------+

Използваме променлива за класиране, като следната:

SELECT    id,score,
          @curRank := @curRank + 1 AS rank
FROM      scores p, (SELECT @curRank := 0) r
ORDER BY  score;

(SELECT @curRank := 0)

част позволява инициализация на променливата, без да се изисква отделна команда SET.

Result:
+----+------+------+
| id | score| rank |
+----+------+------+
| 2  |   10 |    1 |
| 6  |   18 |    2 |
| 5  |   20 |    3 |
| 4  |   22 |    4 |
| 3  |   30 |    5 |
| 1  |   35 |    6 |
| 7  |   36 |    7 |
+----+------+------+
7 rows in set (0.02 sec)

Изчислете ранга в MySQL въз основа на намаляваща стойност

Ако искате да изчислите ранга в MySQL въз основа на низходящ ред на резултатите, просто добавете ключовата дума DESC в заявката.

SELECT    id,score,
          @curRank := @curRank + 1 AS rank
FROM      scores p, (SELECT @curRank := 0) r
ORDER BY  score DESC;

Резултат:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намеря местоположението на MySQL my.cnf

  2. PHP вмъкване на множество масиви от квадратчета за отметка И текстови полета в MySQL база данни

  3. Изберете 3-те най-скорошни записа, където стойностите на една колона са различни

  4. Как да получите броя на всяка отделна стойност в колона?

  5. Percona Live Dublin – Резюме на събитието и нашите сесии