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

यदि कोई टाई है तो मैं डुप्लिकेट मानों के साथ सरणी मानों को कैसे रैंक करूं और कुछ पदों को छोड़ दूं?

मुझे लगता है कि ग्रेड पहले से ही डेटाबेस द्वारा क्रमबद्ध हैं, अन्यथा उपयोग करें sort($grades);

कोड:

$grades = array(92, 84, 84, 84, 83, 65, 41, 38, 38, 37);
$occurrences = array_count_values($grades);
$grades = array_unique($grades);
foreach($grades as $grade) {
    echo str_repeat($grade .' - '.($i+1).'<br>',$occurrences[$grade]);
    $i += $occurrences[$grade];
}

परिणाम:

92 - 1
84 - 2
84 - 2
84 - 2
83 - 5
65 - 6
41 - 7
38 - 8
38 - 8
37 - 10

संपादित करें (नीचे चर्चा का जवाब)

जाहिरा तौर पर, यदि टाई सबसे कम स्कोर पर होती है, तो
सभी न्यूनतम स्कोर की रैंक स्कोर की कुल संख्या के बराबर होनी चाहिए।

कोड:

$grades = array(92, 84, 84, 84, 83, 65, 41, 38, 37, 37);
$occurrences = array_count_values($grades);
$grades = array_unique($grades);
foreach($grades as $grade) {
    if($grade == end($grades))$i += $occurrences[$grade]-1;
    echo str_repeat($grade .' - '.($i+1).'<br>',$occurrences[$grade]);
    $i += $occurrences[$grade];
}

परिणाम:

92 - 1
84 - 2
84 - 2
84 - 2
83 - 5
65 - 6
41 - 7
38 - 8
37 - 10
37 - 10


  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 क्वेरी झूठी क्यों लौटाती है?

  2. Laravel . में दो बिंदुओं के बीच हावर्सिन दूरी की गणना

  3. जावास्क्रिप्ट का उपयोग करके mysql डेटाबेस से 2020-04-30 के बजाय 30-04-2020 की तरह दिनांक दिखाएं

  4. जावा का उपयोग करके MySQL में बाइट [] सम्मिलित नहीं कर सकता

  5. नेस्टेड प्रश्नों से बचना