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

लेफ्ट जॉइन में शामिल पंक्तियों की संख्या गिनना

ऐसा कुछ कैसा रहेगा:

SELECT m.MESSAGEID, sum((case when mp.messageid is not null then 1 else 0 end)) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;

COUNT() फ़ंक्शन प्रत्येक पंक्ति की गणना करेगा, भले ही वह शून्य हो। SUM() और CASE का उपयोग करके, आप केवल गैर-शून्य मानों की गणना कर सकते हैं।

संपादित करें:शीर्ष टिप्पणी से लिया गया एक सरल संस्करण:

SELECT m.MESSAGEID, COUNT(mp.MESSAGEID) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;

आशा है कि यह मदद करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में RM स्वरूप तत्व के बारे में

  2. WHERE क्लॉज में उपनाम का उपयोग करना

  3. ऑर्डर करने के बाद ओरेकल क्वेरी द्वारा लौटाई गई पंक्तियों की संख्या को मैं कैसे सीमित करूं?

  4. पैरामीटर के साथ Oracle में फ़ंक्शन कैसे निष्पादित करें

  5. DBCA डेटाबेस खराब बनाएँ REMOTE_LISTENER