一文带你了解如何用SQL处理周报数据


Eva数据分析

网络数分干货知识,数分大牛就是你!

公众号


【题目】

某公司数据库有三张表,周度销售表、店铺信息表、日销售明细表。


表一:周度销售表记录了每个自然周全国店铺的销售信息,字段包含了周、店铺代码、吊牌金额、销售金额。


表二:店铺信息表记录店铺所在的区域,店铺对应的层级关系及业务类型,字段包含店铺代码、区域、上级客户简称、业务类型。


表三:日销售明细表记录了每天全国不同区域的店铺销售商品的金额,客户性质及商品信息,字段包含区域、上级客户简称、上级客户代码、客户性质、店铺代码、销售日期、销售金额、商品编码。

业务需求:

1.对于不同区域、业务类型的吊牌金额、销售金额进行汇总(时间范围202201-202205周。

2.抽取区域为华东区、华中区、华西区、华南区的,并且客户性质为自营的,2022年3月及同期的日销售数据。


【解题思路】

1.对于不同区域、业务类型的吊牌金额、销售金额进行汇总(时间范围202201-202205周)


我们先来把这个业务需求翻译成大白话:

1)查询结果需要的字段是区域、业务类型、吊牌金额、销售金额

2)筛选时间周为202201-202205

3)对于不同区域、业务类型的吊牌金额、销售金额进行汇总


1)查询结果需要的字段是区域、业务类型、吊牌金额、销售金额


吊牌金额、销售金额在周度销售表中,区域、业务类型在店铺信息表中,涉及到两个表的字段,所以需要进行多表联结。

观察两个表,得知两表的名称相同且有关联的字段为店铺代码,用店铺代码联结两张表。

使用哪种联结呢?拿出《猴子 从零学会SQL》里面的多表联结图。



因为需要得到每个店铺代码对应的业务类型,所以用左连接保留周度销售表中所有的销售数据。


SQL书写如下:

2)筛选时间周为202201-202205,使用between 函数来筛选时间范围。


SQL书写如下:

查询结果:


3)对于不同区域、业务类型的吊牌金额、销售金额进行汇总


业务需求仅显示吊牌金额和销售金额,我们使用分组汇总来对不同区域、业务类分组 (group by),对吊牌金额、销售金额进行汇总求和(求和函数sum)


SQL书写如下:

查询结果:

2、抽取区域为华东区、华中区、华西区、华南区的,并且客户性质为自营的,2022年3月及同期的日销售数据。


需求显示字段区域、客户性质、销售日期,日销售明细表都包含,现在只需要将客户性质为“自营”和时间为2022年3月及2021年3月(同期)数据显示即可。


SQL中使用date_format将日销售表中的销售日期格式设置为年月格式。




SQL书写如下:

查询结果:


【本题考点】


1.业务需求拆解为一个个问题,试着翻译成大白话,根据需求找出连接与突破点。

2.SQL中最常见的几种联结应该如何使用,学习参考猴子免费教程《图解SQL面试题》。

3.数据表中日期格式如果不是我们想要的呈现结果,学会date_format函数进行转化。

展开阅读全文

页面更新:2024-03-08

标签:字段   周报   金额   店铺   性质   区域   需求   类型   客户   代码   业务   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top