SQL 刷题/【阿里巴巴】统计商品类别年龄组销售情况
上一题下一题中等通过率 100%

【阿里巴巴】统计商品类别年龄组销售情况

JOIN 连接聚合函数GROUP BY窗口函数ORDER BY营收统计面试真题

题目描述

来源:阿里巴巴 SQL 面试真题

电商平台需要对商品销售情况进行分析,统计每个商品类别下不同年龄组客户的购买金额,并计算各年龄组购买量占该类别总购买量的比例。

数据表

products 商品表

字段类型说明
product_idBIGINT商品 ID,主键
product_nameVARCHAR(100)商品名称
categoryVARCHAR(20)商品类别,如电子、服装、家居

sales 销售表

字段类型说明
sale_idBIGINT销售 ID,主键
product_idBIGINT商品 ID
sale_dateDATE销售日期
quantityINT销售数量
priceDECIMAL(10,2)本次销售单价

customer_info 客户信息表

字段类型说明
sale_idBIGINT销售 ID,关联 sales.sale_id
customer_idBIGINT客户 ID
age_groupVARCHAR(20)年龄组:青年、中年、老年
genderVARCHAR(10)性别:男、女

统计口径

  • 总销售额为 SUM(quantity * price),结果四舍五入保留 2 位小数。
  • 购买量占比为该商品类别和年龄组的 SUM(quantity) 除以该类别的 SUM(quantity),结果为 0~1 之间的小数并保留 2 位小数。
  • 题干提到“年龄组和性别”,但指定返回字段没有 gender;本题按指定的四列要求,按商品类别和年龄组汇总,性别不单独拆行。
  • 结果按商品类别升序排列,年龄组升序作为同类别下的稳定排序条件。

期望输出列

列名说明
product_category商品类别
age_group年龄组
total_sales_amount总销售额
purchase_percentage购买量占比

数据样例

当前运行环境
product_idPKBIGINTproduct_nameVARCHAR(100)categoryVARCHAR(20)
1智能手机电子
2运动外套服装
3客厅沙发家居
4无线耳机电子
输入数据显示 4 / 4
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里