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

Google BigQuery中的分组统计:按类别计算总销量与平均售价

嘿,这两个需求在Google BigQuery里用简单的聚合SQL就能轻松搞定!我先假设你的表结构大概是这样的(如果字段名和表名不一样,直接替换成你自己的就行):

  • 表名:sales_data(如果在特定项目/数据集下,记得写成your_project.your_dataset.sales_data)
  • 类别字段:product_category
  • 售出数量字段:quantity_sold
  • 商品单价字段:unit_price

1. 按类别统计售出商品总数量

用SUM()聚合函数配合GROUP BY就能实现,按类别分组后直接求和售出数量:

SELECT
  product_category,
  SUM(quantity_sold) AS total_quantity_sold
FROM
  `sales_data`
-- 可选:加过滤条件,比如只统计2024年的销售数据
-- WHERE sale_date >= '2024-01-01'
GROUP BY
  product_category
ORDER BY
  total_quantity_sold DESC; -- 可选:按总销量降序排列,快速查看热门类别

2. 按类别计算商品平均售价

这里要注意两种常见的「平均售价」统计逻辑,你可以根据实际需求选择:

方式一:单个商品单价的算术平均值

如果是想统计所有售出商品的单价的平均水平,直接用AVG()函数:

SELECT
  product_category,
  ROUND(AVG(unit_price), 2) AS average_unit_price -- ROUND用来保留两位小数,可选
FROM
  `sales_data`
-- 可选:加过滤条件
-- WHERE sale_date BETWEEN '2024-01-01' AND '2024-06-30'
GROUP BY
  product_category
ORDER BY
  average_unit_price DESC;

方式二:总销售额除以总售出数量(更贴近实际营收的平均售价)

这种方式是计算该类别商品的总营收除以总销量,能更准确反映每卖出一件商品的平均收入:

SELECT
  product_category,
  ROUND(SUM(unit_price * quantity_sold) / SUM(quantity_sold), 2) AS average_selling_price
FROM
  `sales_data`
-- 可选:加过滤条件
-- WHERE product_category IS NOT NULL -- 排除空类别数据
GROUP BY
  product_category
ORDER BY
  average_selling_price DESC;

小提示:如果你的表是分区表,记得加上分区过滤条件(比如按日期分区时指定sale_date范围),能减少BigQuery扫描的数据量,降低查询成本哦~

内容的提问来源于stack exchange,提问作者Huzefa Sadikot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:49:06