最近做了京东的24年春招题,题目如下:
题目分析
本题要求统计2024年上半年(1月1日~6月30日)各商品类别的总销售额,以及男性和女性顾客的下单人数。
输出字段:
- category_id(商品类别ID)
- total_sales(总销售额)
- male_customers(男性顾客数)
- female_customers(女性顾客数)
输出顺序:题目未指定排序,默认按分组顺序输出。
涉及知识点:
- SQL 多表连接(JOIN)
- 条件筛选(WHERE + 时间区间)
- 分组聚合(SUM、IF)
- 字段别名
解答步骤
1. 关联订单明细与顾客信息
- 用
order_details
订单明细表与customer_info
顾客信息表通过订单ID连接,获取每个订单的顾客性别。
from order_details o
join customer_info c on o.order_id = c.order_id
2. 筛选2024年上半年的订单
- 只保留订单日期在2024年1月1日至6月30日之间的订单。
where o.order_date between '2024-1-1' and '2024-6-30'
3. 分组统计各类别的销售额和顾客性别人数
- 按商品类别ID分组,统计:
- 总销售额:
sum(o.order_amount)
- 男性顾客数:
sum(if(c.customer_gender ='男',1,0))
- 女性顾客数:
sum(if(c.customer_gender ='女',1,0))
- 总销售额:
group by o.category_id
完整代码
select o.category_id,
sum(o.order_amount) as total_sales,
sum(if(c.customer_gender ='男',1,0)) as male_customers,
sum(if(c.customer_gender ='女',1,0)) as female_customers
from order_details o
join customer_info c on o.order_id = c.order_id
where o.order_date between '2024-1-1' and '2024-6-30'
group by o.category_id
近似题目练习推荐
- 知识点:分组聚合、条件统计、JOIN 如需更多类似题目,可在牛客网SQL练习区进行练习。