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

अधिकतम (गिनती ()) खोजने के लिए SQL में उप-प्रश्नों का उपयोग करना

आप जो कर रहे हैं उसके लिए आपको एक सहसंबंधित सबक्वायरी की आवश्यकता नहीं है। आपकी क्वेरी के आधार पर यह एक तरीका है:

select CustomerNum, count(CustomerNum)
from Rentals R
group by CustomerNum
having count(CustomerNum) = (select max(cnt)
                             from (select CustomerNum, count(CustomerNum) as cnt
                                   from Rentals
                                   group by CustomerNum
                                  ) rc
                            );

मैं सबक्वेरी को from . पर ले जाने के लिए इच्छुक हूं खंड और उपश्रेणियों का उपयोग करें:

select rc.*
from (select CustomerNum, count(CustomerNum) as cnt
      from Rentals R
      group by CustomerNum
     ) rc join
     (select max(cnt) as maxcnt
      from (select CustomerNum, count(CustomerNum) as cnt
            from Rentals
            group by CustomerNum
           ) rc
     ) m
     on rc.cnt = m.maxcnt;

ये मानक SQL हैं और दोनों प्रणालियों में काम करना चाहिए। व्यवहार में, मुझे शायद top . का उपयोग करने का एक तरीका मिल जाएगा या row_number() SQL सर्वर 2008 पर।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर डेटाबेस कॉल के साथ मल्टी थ्रेडिंग C# एप्लिकेशन

  2. साइन () SQL सर्वर में उदाहरण

  3. कैसे OBJECTPROPERTYEX () SQL सर्वर में काम करता है

  4. वितरित लेनदेन शुरू करने में असमर्थ

  5. RODBC odbcDriverConnect () कनेक्शन त्रुटि