Среднее из суммы в Mysql запрос - PullRequest
9 голосов
/ 07 июня 2010

У меня проблемы с созданием запроса, который дает мне среднее значение суммы. Я прочитал несколько примеров здесь в stackoverflow и не смог этого сделать. Может кто-нибудь помочь мне понять, как это сделать, пожалуйста? Вот данные, которые у меня есть:

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.  

Это запрос, который я должен СУММИТЬ о транзакциях, но не знаю, как и где включить функцию AVG.

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'})  

Любая помощь приветствуется.

1 Ответ

17 голосов
/ 07 июня 2010
SELECT Cashier,
       Sum(Sales_x0020_Value) / COUNT(DISTINCT Transaction_x0020_Number) AS 'avg'
FROM products 
WHERE Date = {d'2010-06-04'}
GROUP BY Cashier
...