Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

छात्रों को रैंक कैसे आवंटित करें जहां वे उच्चतम रैंक साझा करते हैं जब उनके स्कोर बराबर होते हैं?

आपको दो काउंटर चाहिए

  • निरपेक्ष काउंटर (हमेशा 1, 2, 3, 4, 5, आदि)।
  • रैंक काउंटर - यह 1 से गिना जाता है लेकिन यदि स्कोर समान हैं, तो यह अपडेट नहीं होता है। जैसे ही स्कोर भिन्न होते हैं, यह absolute counter . के साथ अपडेट हो जाता है .

नमूना कोड

$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;
}

आउटपुट:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Powershell और Windows एन्कोडिंग से MysqlDump

  2. ग्रूवी का उपयोग करके MySQL से कनेक्ट करना

  3. MySQL डेटाबेस में PDF फाइल को कैसे स्टोर करें?

  4. एक अंतराल में वर्ष और महीने की गति का उपयोग करके आप एक पंक्ति में शून्य कैसे दिखा सकते हैं?

  5. AWS RDS, भाग 2 पर MySQL को PostgreSQL में माइग्रेट करना