MySQL Query - SELECT (среднее по категории) AS "CATEGORY AVERAGE" - PullRequest
0 голосов
/ 27 июля 2010

Цель: Когда пользователь переходит к определенному продавцу, затем отображает его среднее значение вместе со средним числом продавцов из аналогичной категории для удобства сравнения.

Пример данных:

Seller | Category |  Qty |  Sales  
--------------------------------------------  
Harry  | Mango    | 100  |  50000  
John   | Apple    | 75   |  50500  
Max    | Mango    | 44   |  20000  
Ash    | Mango    | 60   |  35000  
Lingo  | Apple    | 88   |  60000  

Обязательный вывод: (когда пользователь просматривает Ash)
Количество продано Эш: 60
Среднее количество, продаваемое другими продавцами Манго: 68 (среднее 100, 44 и 60)

Средняя цена золы: 583,33 (35000/60)
Средняя цена других продавцов манго: 514,70 (средневзвешенная цена)

Код скелета:

ВЫБРАТЬ «Кол-во» КАК «Кол-во»,
(НЕКОТОРЫЙ КОД) AS 'Avg Qty',
(«Продажи» / «Кол-во») AS «Цена»,
(НЕКОТОРЫЙ КОД) AS 'Avg Price'
ИЗ СТОЛОВ ПРОДАЖИ
ГДЕ «Продавец» = «Ясень»

1 Ответ

1 голос
/ 27 июля 2010

Использование:

SELECT yt.qty,
       x.cat_avg,
       yt.sales/yt.qty AS avg_price,
       NULL AS weighted_average 
  FROM YOUR_TABLE yt
  JOIN (SELECT t.category,
               AVG(t.qty) AS cat_avg
          FROM YOUR_TABLE t
      GROUP BY t.category) x ON x.category = yt.category
 WHERE yt.seller = 'Ash'

Я заполню средневзвешенное значение, когда вы предоставите уравнение, если это возможно.

...