sql - एसक्यूएल: कैसे एक क्वेरी से एक औसत गणना करने के लिए



sql-server sql-server-2012 (1)

SELECT AVG(af.Prev_Reg_Amount)
FROM
    Animal_Facts af
    INNER JOIN Animal_Class ac
    ON af.Class_Key = ac.Class_Key
    AND Class_Description LIKE ('%pensioner%')

मैं अपनी पहली पूर्णकालिक नौकरी में लगभग एक हफ्ते के लिए एसक्यूएल का उपयोग कर रहा हूं, और मैं एक क्वेरी से कुछ आंकड़ों की गणना करने की कोशिश कर रहा हूं जहां मैंने अलग-अलग तालिकाओं से कॉलम जोड़ लिया है

विशेष रूप से, मैं एक संयुक्त तालिका से औसत की गणना करने की कोशिश कर रहा हूं, जहां मैंने फिल्टर लागू किया है (या बाधाएं? मैं एसक्यूएल भाषा पर स्पष्ट नहीं हूं)।

Google पर शोध करने से, मैंने सीख लिया कि कैसे औसतन गणना करना है:

SELECT AVG(column_name) 
FROM table_name

मुझे जो समस्या आ रही है वह यह है कि यह केवल डेटाबेस में मौजूदा तालिकाओं के साथ काम करता है, न कि मैंने जो नई क्वेरी बनाई हैं

मेरे कोड का सरलीकृत संस्करण इस प्रकार है:

SELECT 
    Animal_Facts.Animal_Name, Animal_Facts.Prev_Reg_Amount, 
    Names.Given_Name, Animal_Class.Class_Description
FROM 
    Names
INNER JOIN
    Animal_Facts ON Names.Name_Key = Animal_Facts.Name_Key
INNER JOIN 
    Animal_Class ON Animal_Facts.Class_Key = Animal_Class.Class_Key

यह क्वेरी तीन तालिकाओं से चार कॉलमों को जोड़ती है, जहां Class_Description वर्णन है कि क्या पशु दूषित है, माइक्रोचिप, एक पेंशनभोगी आदि के स्वामित्व में है, और Pre_Reg_Amount पंजीकरण शुल्क का भुगतान किया जाता है।

मैं पेंशनभोगी लोगों द्वारा दिए गए औसत शुल्क को ढूंढना चाहता हूं, इसलिए तालिका को फ़िल्टर करने के लिए मैंने निम्नलिखित कोड को शामिल किया:

AND Animal_Class.Class_Description LIKE ('%pensioner%')

और फिर मैं जोड़ते हुए औसत की गणना करने के लिए:

SELECT AVG(Animal_Facts.Prev_Reg_Amount) from Animal_Facts

तो मेरा कुल कोड है:

SELECT 
    Animal_Facts.Animal_Name, Animal_Facts.Prev_Reg_Amount, 
    Names.Given_Name, Animal_Class.Class_Description
FROM 
    Names
INNER JOIN
    Animal_Facts ON Names.Name_Key = Animal_Facts.Name_Key
INNER JOIN
    Animal_Class ON Animal_Facts.Class_Key = Animal_Class.Class_Key
                 AND Animal_Class.Class_Description LIKE ('%pensioner%')

SELECT AVG(Animal_Facts.Prev_Reg_Amount) 
FROM Animal_Facts

अब यह समस्या यह है कि Excel में इस गणना को जांचने के बाद, मुझे वास्तव में पेंशनभोगी डेटा का औसत नहीं मिल रहा है, लेकिन सभी डेटा का औसत क्या एसक्यूएल में मेरी निर्मित टेबल से औसत (और अन्य आँकड़े) की गणना करने का कोई तरीका है?

नोट: मैं एक्सेल में डेटा निर्यात करके इन सभी आंकड़ों की गणना करने में सक्षम हूं, लेकिन यह अधिक समय लगता है। मैं इसके बजाय एसक्यूएल के भीतर ऐसा कैसे करना सीखूँगा





sql-server-2012