注意:所需数据库信息 自行导入
百度盘子链:链接:https://pan.baidu.com/s/1z9oDeslTNW_WXxhW3067Nw
提取码:yinf
-- 问题:11月退货率和 年均退货率
# dwd表不变就采用原来的dwd_sale_info
#相当于两个问题 做两个dws表
-- (1)11月退货率
-- 需要 -1求11退货量(来自dwd_sale_info 2022年11月份状态为6的product_num求和) -2总已支付量(来自dwd_sale_info 2022年11月份状态为6的作为总销售量product_num) -3二者相除为退货率
-- 创建表 dws表
CREATE TABLE dws_refund_rate_november_zhangsan (
id INT AUTO_INCREMENT PRIMARY KEY,
refund_count INT,
total_sales INT,
refund_rate DECIMAL(5, 2)
);
-- 计算11月退货量
INSERT INTO dws_refund_rate_november_zhangsan (refund_count)
SELECT SUM(product_num)
FROM dwd_sale_info
WHERE YEAR(create_time) = 2022
AND MONTH(create_time) = 11
AND order_status = 6;
-- 计算2022总已支付量
UPDATE dws_refund_rate_november_zhangsan
SET total_sales = (
SELECT SUM(product_num)
FROM dwd_sale_info
WHERE YEAR(create_time) = 2022
AND order_status = 1
);
-- 计算退货率
UPDATE dws_refund_rate_november_zhangsan
SET refund_rate = refund_count / total_sales;
-- 创建名为 ads_refund_rate_november_zhangsan 的表
CREATE TABLE ads_refund_rate_november_zhangsan (
id INT AUTO_INCREMENT PRIMARY KEY,
refund_rate DECIMAL(5, 2)
);
-- 插入11月的退款率数据
INSERT INTO ads_refund_rate_november_zhangsan (refund_rate)
SELECT refund_rate
FROM dws_refund_rate_november_zhangsan;
-- (2)年均退货率
-- 需要 -1年退货量(来自dwd_sale_info 2022年状态为6的product_num求和) -2总已支付量(来自dwd_sale_info 2022年状态为1的作为总销售量product_num) -3二者相除为退货率
-- 创建名dws表
CREATE TABLE dws_annual_refund_rate_zhangsan (
id INT AUTO_INCREMENT PRIMARY KEY,
refund_count INT,
total_sales INT,
annual_refund_rate DECIMAL(5, 2)
);
-- 计算去年的退货量
INSERT INTO dws_annual_refund_rate_zhangsan (refund_count)
SELECT SUM(product_num)
FROM dwd_sale_info
WHERE YEAR(create_time) = 2022
AND order_status = 6;
-- 计算总已支付量
UPDATE dws_annual_refund_rate_zhangsan
SET total_sales = (
SELECT SUM(product_num)
FROM dwd_sale_info
WHERE YEAR(create_time) = 2022
AND order_status = 1
);
-- 计算年均退货率
UPDATE dws_annual_refund_rate_zhangsan
SET annual_refund_rate = refund_count / total_sales;
-- 创建名为 ads_annual_refund_rate_zhangsan 的表
CREATE TABLE ads_annual_refund_rate_zhangsan (
id INT AUTO_INCREMENT PRIMARY KEY,
annual_refund_rate DECIMAL(5, 2)
);
-- 插入年均退款率数据
INSERT INTO ads_annual_refund_rate_zhangsan (annual_refund_rate)
SELECT
annual_refund_rate
FROM
dws_annual_refund_rate_zhangsan;
(3) 查看表结构
DESCRIBE dwd_sale_info;
DESCRIBE dws_refund_rate_november_zhangsan;
DESCRIBE dws_annual_refund_rate_zhangsan;
DESCRIBE ads_refund_rate_november_zhangsan;
DESCRIBE ads_annual_refund_rate_zhangsan;
制作不易 多多支持~~~~~~~~~
作者:尹凡