2011-10-12 16 views
16

मैं निम्नलिखित एसक्यूएल है की औसत पाने के लिए कोशिश कर रहा है: (bitemp)गिनती resultset

SELECT COUNT (*) AS Count 
    FROM Table T 
WHERE (T.Update_time = 
      (SELECT MAX (B.Update_time) 
       FROM Table B 
      WHERE (B.Id = T.Id)) 
GROUP BY T.Grouping 

अब मैं नंबर की एक बहुत कुछ के साथ एक resultset हो रही है। मैं इस सूची का औसत प्राप्त करना चाहता हूं। फिलहाल, मैं एक्सेल में सूची आयात कर रहा हूं और इसके औसत फ़ंक्शन का उपयोग कर रहा हूं। लेकिन डीबी 2 के लिए एक एवीजी समारोह है, लेकिन मुझे इसे काम नहीं मिला।

मैंने SELECT AVG(COUNT(*)) और SELECT AVG(*) FROM (theQuery) की कोशिश की।

+0

सवाल बहुत पुराना है और हल है, किसी भी नमूने की कोई जरूरत नहीं मेरे दृष्टिकोण से – Xavjer

उत्तर

38

तुम सिर्फ एक सबक्वेरी के रूप में आपकी क्वेरी डाल सकते हैं:

SELECT avg(count) 
    FROM 
    (
    SELECT COUNT (*) AS Count 
     FROM Table T 
    WHERE T.Update_time = 
       (SELECT MAX (B.Update_time) 
        FROM Table B 
       WHERE (B.Id = T.Id)) 
    GROUP BY T.Grouping 
    ) as counts 

संपादित करें: मुझे लगता है कि यह एक ही होना चाहिए:

SELECT count(*)/count(distinct T.Grouping) 
    FROM Table T 
WHERE T.Update_time = 
      (SELECT MAX (B.Update_time) 
       FROM Table B 
      WHERE (B.Id = T.Id)) 
+0

मुझे लगता है कि यह मुझे प्रत्येक परिणाम का औसत प्राप्त कर रहा है, जो एक है (क्योंकि इसका समूह है) लेकिन मैं गिनती सामग्री का औसत प्राप्त करना चाहता हूं, इसलिए यदि मैं 2,4,6 प्राप्त करता हूं तो औसत 4 हो, लेकिन मुझे 1 प्राप्त होता है (क्योंकि प्रत्येक में से केवल 1 है) – Xavjer

+0

यदि सबक्वायरी "मायने रखती है" 2,4,6 लौटाता है तो इस सबक्वायरी पर 'avg' वापस आ जाएगा 4. क्या आप अपने प्रश्न में पोस्ट कर सकते हैं परिणाम 'तालिका * 0 Tसे चुनें जहां T.Update_time = (...)'? यह आपकी मदद करने में मददगार हो सकता है। – DavidEG

+3

ठीक है, मुझे आपकी समस्या का समाधान मिला, धन्यवाद आपके उप-उदाहरण उदाहरण के लिए। मैं इसे निम्न प्रकार से उपयोग कर रहा हूं: चयन करें (योग (गणना) एएस फ्लोट)/सीएएसटी (COUNT (गणना) एएस फ्लोट) ... यह वांछित के रूप में काम करता है, धन्यवाद;) (हालांकि मुझे नहीं पता कि औसत 1 क्यों देता है, यहां तक ​​कि जब फ्लोट के रूप में डाला जाता है। परिणाम 1.91 ... – Xavjer

संबंधित मुद्दे