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

टीसीएल और मैसकल के साथ सांख्यिकी

आपको यहां जो चाहिए वह थोड़ी विस्तृत SQL क्वेरी है। यह सबक्वेरी से बना होगा।

पहला यह है (fiddle ) यह आपको प्रत्येक नाम के लिए कुल दरवाजे खोलने वाली वस्तुओं की संख्या देता है।

 SELECT COUNT(*) total, name FROM stats GROUP BY name

अगला यह है (fiddle ) यह आपको प्रति दरवाजे और नाम के खुलने की संख्या देता है।

SELECT COUNT(*) bydoor, name, door FROM stats GROUP BY name, door

तीसरा वाला (fiddle ) दूसरे को शामिल करता है, और आपको प्रत्येक नाम के लिए एक पंक्ति देता है, जो द्वार खोलता है।

SELECT name, 
       GROUP_CONCAT(CONCAT(bydoor,'X',' door ', door) ORDER BY bydoor DESC) details
  FROM (   SELECT COUNT(*) bydoor,
                  name,
                  door
             FROM stats
            GROUP BY name, door
        ) s
  GROUP BY name

अंत में, आपको इस फ़ॉर्म की उन सबक्वेरी को एक साथ जोड़ने के लिए एक जॉइन की आवश्यकता है।

   SELECT t.name, t.total, d.details
     FROM ( .... the first subquery ....) t
     JOIN ( .... the second subquery .... ) d ON t.name = d.name
    ORDER BY t.total DESC, t.name

सभी वर्तनी में यह इस तरह दिखता है (fiddle ) आप इसे अपने sql . में डाल दें परिवर्तनीय और आप जाने के लिए अच्छे हैं। यह सिर्फ एक मल्टीलाइन स्ट्रिंग है।

set sql {SELECT t.name, t.total, d.details
  FROM (SELECT COUNT(*) total, name FROM stats GROUP BY name) t
  JOIN (  SELECT name, 
                 GROUP_CONCAT(CONCAT(bydoor,'X',' door ', door) ORDER BY bydoor DESC) details
            FROM (   SELECT COUNT(*) bydoor,
                            name,
                            door
                       FROM stats
                      GROUP BY name, door
                 ) s
           GROUP BY name
        ) d ON t.name = d.name
  ORDER BY t.total DESC, t.name}

तो नेस्टेड प्रश्नों के एक समूह से बनी एक क्वेरी है।

जैसे-जैसे आप SQL डेटा विश्लेषण में बेहतर होते जाते हैं, आपको सीखने के लिए यहां कुछ तरकीबें दी गई हैं।

  1. GROUP BY का उपयोग
  2. क्वेरी नेस्टिंग, जिसे सबक्वेरी भी कहा जाता है। आप सबक्वेरी को वर्चुअल टेबल के रूप में सोच सकते हैं।
  3. (उन्नत) GROUP_CONCAT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql:दूरस्थ IP का उपयोग करके लोकलहोस्ट से कनेक्ट करने का प्रयास करते समय कनेक्शन से इनकार कर दिया गया

  2. MySQL क्रैश (कुछ पॉइंटर्स अमान्य हो सकते हैं और डंप को निरस्त करने का कारण बन सकते हैं)

  3. मैं MySQL में 2 टेबल से DELETE करने के लिए एक ट्रिगर चाहता हूं

  4. सफलता को अपडेट/डिलीट करते समय प्रभावित पंक्तियाँ 0 क्यों लौटती हैं?

  5. mySQL क्वेरी एकाधिक - त्रुटि देता है mysql_fetch_array