You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL按品牌计算手机平均成本并生成带均值的全量结果

实现每行数据附带对应品牌平均成本的SQL写法

方法一:使用窗口函数(推荐,高效简洁)

利用窗口函数AVG() OVER (PARTITION BY ...)可以在不聚合原表数据的前提下,按品牌分组计算平均成本并附加到每一行:

SELECT 
  *,
  AVG(cost) OVER (PARTITION BY brand) AS brand_avg_cost
FROM Phone;
  • PARTITION BY brand:将表数据按brand字段分组
  • AVG(cost) OVER (...):在每个品牌分组内计算成本的平均值,并将该值填充到当前分组的每一行中,最终保留原表所有行数据。

方法二:使用关联子查询(兼容老版本数据库)

如果你的数据库不支持窗口函数,可以通过关联子查询实现:

SELECT 
  p.*,
  (SELECT AVG(cost) FROM Phone WHERE brand = p.brand) AS brand_avg_cost
FROM Phone p;
  • 对原表的每一行记录,通过子查询匹配相同brand的所有数据,计算其平均成本并作为新列返回。不过此方法在数据量较大时,性能不如窗口函数。

内容的提问来源于stack exchange,提问作者Galaxy S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:55:27