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

Jak přiřadit hodnost studentům tam, kde sdílejí nejvyšší hodnost, když se jejich skóre rovná?

Potřebujete dva čítače

  • Absolutní počítadlo (vždy 1, 2, 3, 4, 5 atd.).
  • Počítadlo hodnocení – počítá se od 1, ale pokud je skóre stejné, neaktualizuje se. Jakmile se skóre liší, aktualizuje se pomocí absolute counter .

Ukázkový kód

$counter = 1; // init absolute counter
$rank = 1; // init rank counter

// initial "previous" score:
$prevScore = 0;
while ($go = mysql_fetch_array($avg))
{
    // get "current" score
    $score = $go['AVGFCT_10'];

    if ($prevScore != $score) // if previous & current scores differ
        $rank = $counter;
    // else //same // do nothing

    echo "Rank: {$rank}, Score: {$score}<br>";
    $counter ++; // always increment absolute counter

    //current score becomes previous score for next loop iteration
    $prevScore = $score;
}

Výstup:

Rank: 1, Score: 97.8
Rank: 2, Score: 96.1
Rank: 2, Score: 96.1
Rank: 4, Score: 90.7



  1. Přidání řádků do mysql z dynamických polí formuláře jquery

  2. Jak zkontrolovat nainstalovaný nebo neinstalovaný klient Oracle jako předpoklad pro instalaci komponent

  3. Ikona serveru Wamp nesvítí úplně zeleně, služby mysql se nespouštějí?

  4. PostgreSQL parametrizované Order By / Limit v tabulkové funkci