欢迎光临散文网 会员登陆 & 注册

打工人打工魂!销售分析案例来啦!

2023-06-26 07:20 作者:猴子数据分析  | 我要投稿



某公司要了解1月、2月各个销售员的销售情况怎么样?销售记录表如下:



要求输出格式如下:




【解题思路】


此题主要考察 case when 行列的转换问题,即如下图所示:



通过case when 的转换,把列的项目转换成行字段,有两种方法供参考,其中第一个方法较为简洁。


一、行列转换汇总求和


1、利用cese when语句先分别对销售员判断,然后得到每个销售员每日的销售金额。销售员原来为列里的一项,通过case when 转换为行的项目

2、加上日期字段进行查询


3、按月份、销售员汇总

1)、因销售记录中时间字段是具体的日期,题目要求是按照“月份”分组,需要用date_format函数把日期转为月份。

2)、对销售员按照“月份”汇总,在case when 筛选的基础上再用sum求和,得到每个销售员每个月总的销售金额。

得到查询结果:


二、临时表查询


1、利用cese when语句先分别对销售员判断,得到每个销售员每日的销售金额,销售员原来为列里的一项,通过case when 转换为行的项目


2、把第一步的查询作为一个临时表a,然后对表a的查询结果按月份进行汇总查询。


上面的结果与题意要求的还有些差距,因“小李”1月份没有销售额,该值为NULL,因题意要求为0,利用case when 把NULL改为 0,调整代码如下:

得到要求的结果如下:



【本题考点】

1、重点考查用case when语句进行列数据转换和条件判断,在实际工作中,这个语句是经常用到的


   case when <判断表达式> then <表达式> else <表达式> end


另外,case when有两种格式:简单函数,搜索函数。他们的用法,详见case when 函数的详细介绍。

2、case when表达式的聚合,可以用sum,max,avg等对筛选的表达式结果再进行一次聚合,如:

sum(case when <判断表达式> then <表达式> else <表达式> end )

3、年+月的表达方法

  SQL中,单独的对字段取年、月,用相应的函数


year(日期字段)   对日期字段取年份

month(日期字段)  对日期字段取月份


但是,要取“年+月”,可以采用函数

date_format(date,format)


date_format(date,format )函数为SQL中设置时间格式的函数,其中括号里的“date”是要设置的日期,“format” 是设置成规定日期/时间的格式。根据format字符串格式化date值。下列字符和字符串是常用的:


格式化日期常用的字符串:



打工人打工魂!销售分析案例来啦!的评论 (共 条)

分享到微博请遵守国家法律