销售员、客户、产品
文章目录
- 前言
- 一、SQL题目
- 二、解答方法
- (一)建表插入测试数据
- (二)第一题解答
- (三)第二题解答
- (四)第三题解答
- 总结
前言
分享本人遇到的笔试真题与解法,并附上自己的思考,供各位小伙伴参考。
一、SQL题目
现有一个表A,包含有如下字段,按要求编写SQL。
- 日期
- 门店
- 销售员
- 客户
- 产品
- 销售额
第一题:求2022年1月各门店销售额
第二题:当客户的消费金额达到2000元时,自动将其升级为贵宾会员,求现有贵宾会员
第三题:求2022年各门店卖得最好的产品
二、解答方法
(一)建表插入测试数据
- 建表语句
create table store_sale
(
sale_date date,
store varchar(50),
salesman varchar(50),
customer varchar(50),
product varchar(50),
sale_amt decimal(10,2)
);
- 插入数据
insert into store_sale values
('2022-01-01','南山店','张三','jojo','苹果',1000),
('2022-01-03','南山店','张三','coco','香蕉',500),
('2022-01-05','南山店','张三','coco','苹果',1000),
('2022-01-05','南山店','李四','bobo','苹果',2000),
('2022-01-07','龙岗店','王五','lolo','葡萄',1000),
('2022-01-08','龙岗店','王五','lolo','葡萄',1000),
('2022-01-15','福田店','罗七','soso','橙子',300)
(二)第一题解答
第一题:求2022年1月各门店销售额
SELECT
store
,SUM(sale_amt) AS sale_amt
FROM store_sale
WHERE sale_date LIKE '2022-01%'
GROUP BY store
;
(三)第二题解答
第二题:当客户的消费金额达到2000元时,自动将其升级为贵宾会员,求现有贵宾会员
SELECT
customer
,SUM(sale_amt) AS sale_amt
FROM store_sale
GROUP BY customer
HAVING SUM(sale_amt) >= 2000
;
(四)第三题解答
第三题:求2022年各门店卖得最好的产品
select
store
,product
from
(
SELECT
store
,product
,row_number() over(partition by store order by SUM(sale_amt) DESC) AS rn
FROM store_sale
WHERE sale_date LIKE '2022%'
GROUP BY
store
,product
) t
where rn = 1
;
总结
销售员、客户、产品是销售数据分析常用的几个维度,本笔试题从公司的业务场景出发,考察SQL编程能力。实际数据分析过程中,也常根据这几个维度,从不同角度汇总分析数据,从而得到结论。