sql >> Databáze >  >> RDS >> Mysql

Jak vypočítat hodnocení v MySQL

Mnohokrát potřebujete vypočítat hodnocení v MySQL. Můžete seřadit podle čísla nebo textu, ale nemůžete snadno vypočítat hodnocení v MySQL. Zde je dotaz, který můžete použít. Stačí nahradit název tabulky skóre a názvy sloupců id, skóre.

Vypočítejte hodnocení v MySQL na základě rostoucí hodnoty

Příklad:

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 |
+----+------+

Používáme proměnnou hodnocení, jako je tato:

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

The

(SELECT @curRank := 0)

část umožňuje inicializaci proměnné bez nutnosti samostatného příkazu 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)

Vypočítejte hodnocení v MySQL na základě klesající hodnoty

Pokud chcete vypočítat hodnocení v MySQL na základě klesajícího pořadí skóre, přidejte do dotazu klíčové slovo DESC.

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

Výsledek:

  1. Exportujte celou databázi SQLite do souboru SQL

  2. Jak funguje funkce Exp() v PostgreSQL

  3. jaký jdbc jar použít s oracle 11g &jdk 1.6 a jak se připojit k samotnému db

  4. Vylepšení tempdb v SQL Server 2019