MySQL查询 - SELECT(类别的平均值)AS“CATEGORY AVERAGE”

时间:2010-07-27 00:53:08

标签: sql mysql aggregate-functions

目标:当用户浏览特定卖家时,显示他的平均值以及类似类别的卖家平均值,以便于比较。

示例数据:

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时)
Ash出售的数量: 60
其他芒果卖家平均销售量: 68 (平均值为100,44&60)

平均灰价: 583.33 (35000/60)
其他芒果卖家平均价格: 514.70 (加权平均价格)

骷髅代码:

  

选择'数量'AS'数量',
  (某些代码)AS'Avg Qty',
  ('销售'/'数量')AS'价格',
  (某些代码)AS'Avg Price'
  来自'SALES TABLE'
  在哪里'卖方'='灰'

1 个答案:

答案 0 :(得分:1)

使用:

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'

如果可能的话,我会在你提供等式时填写加权平均值。