上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.5.2 案例二:销售数据分析
接下来,我们将会使用一个虚拟的销售数据集(sales_data)。该数据集包含了2019年1月1日到2019年6月30日三种产品在三个渠道每天的销售情况。示例表的创建脚本可以通过“读者服务”获取,以下是该表中的部分数据:
我们首先通过分组汇总了解一下产品的整体销售情况:
其中,GROUP BY ROLLUP子句表示统计不同产品不同渠道的销售金额小计、不同产品所有渠道的销售金额合计以及所有产品的销售总计。查询返回的结果如下:
在我们的模拟数据中,橘子的销售金额为909 261元,在京东商城的销售金额最高,在店面的销售金额最低;苹果的销售金额为937 052元,在京东商城的销售金额最高,在店面的销售金额最低;香蕉的销售金额为925 369元,在店面的销售金额最高,在京东商城的销售金额最低;所有产品的销售金额总计为2 771 682元。
对于MySQL,我们可以使用WITH ROLLUP选项实现相同的功能。
在Excel中有一个分析功能,叫作数据透视表(Pivot Table),数据透视表可以提供不同级别的数据统计、对比分析和趋势分析等。考虑一下,如何通过SQL查询实现以下数据透视表?
我们同样可以利用分组汇总加上CASE表达式实现以上报表:
其中,GROUP BY ROLLUP子句表示统计不同产品不同渠道的销售金额小计、不同产品所有渠道的销售金额合计以及所有产品的销售总计,EXTRACT函数加上CASE表达式用于获取每个月的销售金额。
对于MySQL,我们需要使用WITH ROLLUP选项替换ROLLUP。对于Microsoft SQL Server,我们需要使用DATEPART函数替换EXTRACT函数。