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

सबसे अधिक बार प्रदर्शित होने वाले मानों का चयन कैसे करें?

select
  x.last_name,
  x.name_count
from
  (select
    u.last_name,
    count(*) as name_count,
    rank() over (order by count(*) desc) as rank
  from
    users u
  group by
    u.last_name) x
where
  x.rank = 1

विश्लेषणात्मक कार्य का उपयोग करें rank . यह count(*) desc . के क्रम के आधार पर एक नंबरिंग असाइन करेगा . यदि दो नामों की गिनती समान है, तो उन्हें समान रैंक मिलती है, और अगली संख्या को छोड़ दिया जाता है (इसलिए आपको रैंक 1, 1 और 3 वाली पंक्तियाँ मिल सकती हैं)। dense_rank एक विकल्प है जो दो पंक्तियों को समान रैंक मिलने पर अगली संख्या को नहीं छोड़ता है, (इसलिए आपको 1, 1, 2 मिलेगा), लेकिन यदि आप केवल रैंक 1 वाली पंक्तियाँ चाहते हैं, तो बहुत अधिक अंतर नहीं है .

यदि आप केवल एक पंक्ति चाहते हैं, तो आप चाहते हैं कि प्रत्येक पंक्ति में एक अलग संख्या हो। उस स्थिति में, row_number . का उपयोग करें . इस छोटे-लेकिन-महत्वपूर्ण अंतर के अलावा, ये फ़ंक्शन समान हैं और इन्हें उसी तरह उपयोग किया जा सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-28001:पासवर्ड की समय सीमा समाप्त हो गई है, ठीक करने योग्य नहीं है

  2. एक इंटरएक्टिव रिपोर्ट के लिए एक क्वेरी में चर सेट करने के लिए एपेक्स में एक फॉर्म बनाना

  3. SQL सर्वर की तुलना में Oracle में बेहतर संगामिति?

  4. पीएल/एसक्यूएल में अंडरस्कोर से बचें

  5. Oracle - मैं किस TNS नाम फ़ाइल का उपयोग कर रहा हूँ?