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

标签 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
其他 Mango 卖家的平均销售数量:68 (100、44 和 60 的平均值)

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

骨架代码:

SELECT 'Qty' AS 'Qty',
(SOME CODE) AS 'Avg Qty',
('Sales' / 'Qty') AS 'Price',
(SOME CODE) AS 'Avg Price'
FROM 'SALES TABLE'
WHERE 'Seller' = 'Ash'

最佳答案

用途:

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'

如果可能的话,当您提供方程时,我会填写加权平均值。

关于sql - MySQL 查询 - SELECT(类别的平均值)AS "CATEGORY AVERAGE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3340021/

相关文章:

php - mysql 获取和 php

mysql - 为什么我的查询不使用任何索引?

mysql - 对具有联合函数的两个查询使用公共(public)顺序

mysql - 如何使用 mySQL replace() 替换多条记录中的字符串?

mysql - 如何在mysql MIN()聚合函数中比较科学计数法和小数?

mysql - 使用 GROUP_CONCAT 查询不起作用

php - 根据操作向查询结果添加列

sql - informix 中的函数添加月份

mysql - "IS NULL"不工作

mysql - 改进mysql查询评论2层层次结构