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

उच्चतम अंकों वाले पहले तीन समूहों में विशिष्ट अंक 5,3, 1 . होने चाहिए

यह उत्तर इटे . द्वारा दिया गया है

SELECT t1.`id`,  t1.`name`,  t1.`group1`,
       t1.`section`, t1.`MARKS`, `t_group_points`.`points`

FROM   `students` t1

LEFT JOIN (
    (
        SELECT `t4`.`group1`, `t_points`.`points`
        FROM   (SELECT   `t3`.`group1`, AVG(`t3`.`marks`) AS `avg`
                FROM     `students` `t3`
                WHERE    (`t3`.`section` = 'class1') AND
                         (`t3`.`group1` IS NOT NULL)
                GROUP BY `t3`.`group1`) `t4`

        INNER JOIN (
              (SELECT `top`.`avg`,
                      CASE @curRow := @curRow + 1  
                           WHEN '1' THEN 5
                           WHEN '2' THEN 3
                           WHEN '3' THEN 1
                           ELSE NULL END 'points'

              FROM (SELECT `t_avg`.`avg`
                    FROM   (SELECT   `t2`.`group1`, AVG(`t2`.`marks`) AS `avg`
                            FROM     `students` `t2`
                            WHERE    (`t2`.`section` = 'class1') AND
                                     (`t2`.`group1` IS NOT NULL)
                            GROUP BY `group1`) `t_avg`
                    GROUP BY `t_avg`.`avg`
                    ORDER BY `avg` DESC
                    LIMIT 0, 3) `top`, (SELECT @curRow:=0) r
              ) AS `t_points`)
         ON (`t_points`.`avg` = `t4`.`avg`)      
    ) AS `t_group_points`)
ON (`t_group_points`.`group1` = `t1`.`group1`)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 1970 से पहले की तारीखों के लिए स्ट्रेटोटाइम का उपयोग करना

  2. MySQL क्रिएट फंक्शन सिंटैक्स

  3. सी # का उपयोग कर बीएलओबी प्रारूप में MySQL डेटाबेस में संग्रहीत एक छवि प्रदर्शित करें

  4. खंड से अद्यतन के लिए लक्ष्य तालिका निर्दिष्ट नहीं कर सकता

  5. PHP का उपयोग करके mySQLi क्वेरी से प्रत्येक पंक्ति को कैसे प्रतिध्वनित करें?