2010-06-07 13 views
5

मुझे एक प्रश्न बनाने में कुछ समस्याएं आ रही हैं जो मुझे औसत राशि देती हैं। मैंने यहां कुछ उदाहरण स्टैक ओवरफ्लो में पढ़ा और ऐसा नहीं कर सका। क्या कोई मुझे यह समझने में मदद कर सकता है कि कृपया इसे कैसे करें? यह मेरे पास है:MySQL क्वेरी में एक योग का औसत

Transaction_x0020_Number Product_x0020_Code Sales_x0020_Value Date  Cashier 
000356     350     24.99    2010-06-04 131  
000356     726     32.99    2010-06-04 131  
000357     350     24.99    2010-06-04 131  
000358     350     24.99    2010-06-04 131  
000358     360     24.99    2010-06-04 131  
000770     703     69.99    2010-06-04 130  
000771     726     32.99    2010-06-04 130  
000772     1126    5     2010-06-04 130  
000773     482     32.99    2010-06-04 130  
000774     600     32.99    2010-06-04 130  
000775     350     24.99    2010-06-04 130  

असल में मुझे कैशियर द्वारा औसत लेनदेन मूल्य की आवश्यकता है। मैं मूल औसत नहीं चला सकता क्योंकि यह सभी पंक्तियां लेगा लेकिन प्रत्येक लेनदेन में कई पंक्तियां हो सकती हैं।

Cashier| Average| 
131 | 44.31 |(Which comes from the sum divided by 3 transactions not 5 rows) 
130 | 33.15 | 
etc. 

इस क्वेरी मैं लेनदेन योग करने के लिए है, लेकिन पता नहीं कैसे या जहाँ औसत समारोह शामिल करने के लिए है: अंत में मैं करना चाहते हैं।

SELECT `products`.`Transaction_x0020_Number`, 
     Sum(`products`.`Sales_x0020_Value`) AS `SUM of Sales_x0020_Value`, 
     `products`.`Cashier` 
    FROM `products` 
GROUP BY `products`.`Transaction_x0020_Number`, `products`.`Date`, `products`.`Cashier` 
    HAVING (`products`.`Date` ={d'2010-06-04'}) 

किसी भी मदद की सराहना की जाती है।

उत्तर

14
SELECT Cashier, 
     Sum(Sales_x0020_Value)/COUNT(DISTINCT Transaction_x0020_Number) AS 'avg' 
FROM products 
WHERE Date = {d'2010-06-04'} 
GROUP BY Cashier 
+0

आह, 8 सेकंड पहले, मेरा हटा दिया गया (हालांकि मुझे MySQL पर एक डी {} वाक्यविन्यास याद नहीं है?)। लेनदेन की राशि जानने की जरूरत नहीं है अगर यह वास्तव में औसत किया जा रहा है। – Wrikken

+1

एक तरफ ध्यान दें: सबसे अच्छा समाधान, लेकिन केवल एक WHERE के बजाय, HAVING क्लॉज की प्रतिलिपि क्यों उपयोग की जानी चाहिए? – Wrikken

+0

+1 यह काम करता है। अच्छा समाधान अगर हैविंग तय है। –

-3

यह मुझे सबसे आसान तरीका है।

SELECT answers, AVG(score) 
FROM tests 
संबंधित मुद्दे