销售员、客户、产品
文章目录
- 前言
 - 一、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编程能力。实际数据分析过程中,也常根据这几个维度,从不同角度汇总分析数据,从而得到结论。

![[ XSS-labs通关宝典 ] xss-labs 通关宝典之 less1 - less5](https://img-blog.csdnimg.cn/a125b39655294c87bb54d2a8c7691701.png)

















