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

सॉफ्टवेयर इंजीनियरिंग में अधिकतम अंक प्राप्त करने वाले छात्र(छात्रों) का नाम खोजने के लिए एक प्रश्न लिखें। नाम के आधार पर परिणाम छाँटें

इस तथ्य के अलावा कि आप जॉइन के लिए पुराने निहित अल्पविराम सिंटैक्स का उपयोग कर रहे हैं, आप उप क्वेरी में गलत तरीके से टेबल के कॉलम भी जोड़ रहे हैं।

subject_name subject . का एक कॉलम है जिसका छात्र के अंकों से संबंध से कोई लेना-देना नहीं है। तो, उच्चतम अंक वाले छात्र_आईडी का निर्धारण करते समय अंक को विषय के साथ अलग से जोड़ा जा सकता है। फिर हम उन student_ids का उपयोग करके छात्र का नाम प्राप्त कर सकते हैं

तो, Oracle 12c और इसके बाद के संस्करण में, आप कर सकते हैं

SELECT s.student_name
   FROM student s
WHERE s.student_id IN ( SELECT m.student_id
                        FROM mark m JOIN subject su 
                         ON su.subject_id = m.subject_id
                        WHERE lower(su.subject_name) = 'software engineering'
                           ORDER BY m.value DESC
                        FETCH FIRST 1 ROWS WITH TIES ) order by 1;  

पिछले संस्करणों के लिए, आप dense_rank . का उपयोग कर सकते हैं या rank

SELECT s.student_name
   FROM student s
WHERE s.student_id IN ( SELECT student_id
                        FROM ( SELECT m.*,DENSE_RANK() OVER(
                                    ORDER BY m.value DESC
                               ) AS rnk
                               FROM mark m  JOIN subject su 
                                ON su.subject_id = m.subject_id
                        WHERE lower(su.subject_name) = 'software engineering'
                    ) WHERE rnk = 1
               ) order by 1;     


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी अन्य कॉलम द्वारा समूहीकृत किसी भिन्न स्तंभ के अधिकतम के आधार पर मान प्राप्त करें

  2. रेगेक्सपी में (*) और .* में क्या अंतर है?

  3. Oracle SQL डेवलपर में संग्रहीत कार्यविधि को कैसे संपादित करें?

  4. Oracle संग्रहीत कार्यविधि कैसे बनाएं जो विशिष्ट संस्थाओं के साथ-साथ सभी संस्थाओं को वापस कर सके

  5. ORA-00933 SQL कमांड ठीक से समाप्त नहीं हुआ लेकिन SQL डेवलपर में अच्छा है