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

स्तर 1 के सभी रिकॉर्ड प्राप्त करें जिसमें स्तर 2 . में केवल निर्दिष्ट मानों की संख्या है

तालिका में एक सबक्वेरी के साथ जुड़ें जो पैरेंट के लिए पंक्तियों की संख्या की गणना करता है, और केवल वही चुनें जिनकी गिनती आप चाहते हैं।

SELECT DISTINCT a.level1 AS Parent, a.level2 AS Child
FROM yourTable AS a
JOIN (SELECT level1, COUNT(DISTINCT level2) AS children
      FROM yourTable
      GROUP BY level1) AS b
ON a.level1 = b.level1
WHERE children = :child

बदलें :child उन बच्चों की संख्या के साथ जिनका आप मिलान करने का प्रयास कर रहे हैं।

DEMO

COUNT(Column2) Using का उपयोग करना COUNT(*) . के बजाय उन पंक्तियों को अनदेखा कर देगा जहां Column2 NULL है , इसलिए इसमें A100 . शामिल नहीं होगा ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस से <select> स्टेटमेंट कैसे चुनें?

  2. दी गई तिथियों के बीच मूल्य की गणना करें

  3. MySQL में Oracle के REF CURSOR के बराबर क्या है?

  4. शामिल होने पर डुप्लीकेट कॉलम

  5. एक इंडेक्स क्वेरी को वास्तव में धीमा क्यों कर सकता है?