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

डेटाबेस से SQL क्वेरी का उपयोग करके देश के राज्य और शहर की गिनती कैसे प्राप्त करें?

क्योंकि देशों में कई राज्य हो सकते हैं और प्रत्येक राज्य में कई शहर हो सकते हैं जब आप इन 1 से कई और 1 से कई में शामिल होते हैं तो आपके राज्य की संख्या बढ़ जाती है। तो आपको राज्य की विशिष्ट गणना की आवश्यकता है। शहर की संख्या पहले से ही देश और राज्य के लिए अद्वितीय है, इस प्रकार विशिष्ट की आवश्यकता नहीं है। जहां राज्य देश के शहर के लिए अद्वितीय नहीं है, इसलिए अलग की जरूरत है। यह निश्चित रूप से मानता है कि आप प्रत्येक देश में अद्वितीय राज्यों की गिनती चाहते हैं।

SELECT c.name, count(distinct s.name) as statecount,  count(Ci.name) as CityCount
FROM countries c
INNER JOIN states s 
  on c.id = s.country_ID
INNER JOIN cities ci
  ON s.id = ci.state_id
GROUP BY C.name

या अपने पुराने स्टाइल को जॉइन नोटेशन में रखते हुए:

SELECT c.name, count(distinct s.name) as statecount,  count(ci.name) citycount 
FROM countries c,states s,cities ci
WHERE ci.state_id = s.id 
  and s.country_id = c.id 
GROUP BY s.name

निम्नलिखित उदाहरण पर विचार करें:http://rextester.com/ZGYF56786

या चित्र के रूप में नीचे

देखें कि देश, राज्य और शहर के बीच जुड़ाव कब होता है। शहर में शामिल होने के कारण राज्य दोहराया जाता है, उस कॉलम में राज्य को अब अद्वितीय नहीं बना रहा है, एक विशिष्ट करके हम केवल 7 के बजाय 2 राज्यों की गिनती लौटाते हैं, प्रत्येक रिकॉर्ड के लिए एक।

+-----+------------+-------------+
| USA | Illinois   | Chicago     |
| USA | Illinois   | Springfield |
| USA | Illinois   | Peoria      |
| USA | California | LosAngeles  |
| USA | California | Sacramento  |
| USA | California | SanDeigo    |
| USA | California | Hollywood   |
| USA | California | Oakland     |
|-----|------------|-------------|
|Name | statecount | Citycount   |
| USA | 2          | 7           | <-- Is this result correct? (i hope so)
| USA | 7          | 7           | <-- or this one? (then why bother just count(*) and only 1 count needed.
+-----+------------+-------------+

मुझे लगता है कि आप पहला परिणाम चाहते हैं क्योंकि यूएसए तालिका में केवल 2 राज्य सूचीबद्ध हैं और 7 शहर हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विधि JPQL के लिए क्वेरी के लिए सत्यापन विफल रहा

  2. ट्रिगर बनाने के लिए गतिशील रूप से MySQL कोड का निर्माण

  3. SQL केवल कॉलम पर अधिकतम मान वाली पंक्तियों का चयन करता है

  4. चेकआउट समय के साथ SQL समस्या

  5. चयन कथन हमेशा php mysql में अंतिम सम्मिलित पंक्ति लौटाता है