Merge branch 'main' of http://1.15.179.94:3000/admin/heilan
# Conflicts: # SQL.sql
This commit is contained in:
218
SQL.sql
218
SQL.sql
@@ -1,7 +1,6 @@
|
|||||||
<<<<<<< HEAD
|
|
||||||
-- 线上店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
-- 线上店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
||||||
SELECT
|
SELECT
|
||||||
sales.store_name as '店铺名称',
|
sales.store_code as '店铺编码',
|
||||||
year(sales.order_date) AS '年份',
|
year(sales.order_date) AS '年份',
|
||||||
round(sum(sales.order_settle_amt),2) as '销售金额',
|
round(sum(sales.order_settle_amt),2) as '销售金额',
|
||||||
COUNT(sales.platform_order_no) +
|
COUNT(sales.platform_order_no) +
|
||||||
@@ -14,19 +13,19 @@ FROM
|
|||||||
left join dwd_trade_hkaudit_ecommerce_sale_return_mt refund
|
left join dwd_trade_hkaudit_ecommerce_sale_return_mt refund
|
||||||
on sales.platform_order_no = refund.platform_order_no
|
on sales.platform_order_no = refund.platform_order_no
|
||||||
left join dwd_trade_hkaudit_ecommerce_sale_change_mt change
|
left join dwd_trade_hkaudit_ecommerce_sale_change_mt change
|
||||||
on refund.platform_order_no = change.platform_order_no
|
on sales.platform_order_no = change.platform_order_no
|
||||||
WHERE
|
WHERE
|
||||||
sales.order_date >= '2022-01-01 00:00:00'
|
sales.order_date >= '2022-01-01 00:00:00'
|
||||||
AND sales.order_date <'2025-07-31 00:00:00'
|
AND sales.order_date <'2025-07-31 00:00:00'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
sales.store_name, year(sales.order_date)
|
sales.store_code, year(sales.order_date)
|
||||||
ORDER BY
|
ORDER BY
|
||||||
sales.store_name ASC, 年份 ASC
|
sales.store_code ASC, 年份 ASC
|
||||||
|
|
||||||
|
|
||||||
-- 线下店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
-- 线下店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
||||||
SELECT
|
SELECT
|
||||||
store_name as '店铺名称',
|
store_code as '店铺编码',
|
||||||
YEAR(pay_date) as '年份',
|
YEAR(pay_date) as '年份',
|
||||||
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额',
|
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额',
|
||||||
count(CASE WHEN pay_amt > 0 THEN receipt_no ELSE NULL END) as '订单数量',
|
count(CASE WHEN pay_amt > 0 THEN receipt_no ELSE NULL END) as '订单数量',
|
||||||
@@ -38,13 +37,13 @@ WHERE
|
|||||||
pay_date >= '2022-01-01 00:00:00'
|
pay_date >= '2022-01-01 00:00:00'
|
||||||
AND pay_date < '2025-07-01 00:00:00'
|
AND pay_date < '2025-07-01 00:00:00'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
store_name, YEAR(pay_date)
|
store_code, YEAR(pay_date)
|
||||||
ORDER BY
|
ORDER BY
|
||||||
store_name ASC, 年份 ASC;
|
store_code ASC, 年份 ASC;
|
||||||
|
|
||||||
-- 线上店铺月度销售金额
|
-- 线上店铺月度销售金额
|
||||||
SELECT
|
SELECT
|
||||||
store_name as '店铺名称',
|
store_code as '店铺编码',
|
||||||
YEAR(order_date) as '年份',
|
YEAR(order_date) as '年份',
|
||||||
month(order_date) as '月份',
|
month(order_date) as '月份',
|
||||||
round(sum(order_settle_amt),2) as '销售金额'
|
round(sum(order_settle_amt),2) as '销售金额'
|
||||||
@@ -54,13 +53,13 @@ WHERE
|
|||||||
order_date >= '2022-01-01 00:00:00'
|
order_date >= '2022-01-01 00:00:00'
|
||||||
AND order_date <'2025-07-01 00:00:00'
|
AND order_date <'2025-07-01 00:00:00'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
store_name,年份,月份
|
store_code,年份,月份
|
||||||
order BY
|
order BY
|
||||||
store_name,年份 asc,月份 asc
|
store_code,年份 asc,月份 asc
|
||||||
|
|
||||||
-- 线下店铺月度销售金额
|
-- 线下店铺月度销售金额
|
||||||
SELECT
|
SELECT
|
||||||
store_name as '店铺名称',
|
store_code as '店铺编码',
|
||||||
year(pay_date) as '年份',
|
year(pay_date) as '年份',
|
||||||
month(pay_date) as '月份',
|
month(pay_date) as '月份',
|
||||||
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额'
|
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额'
|
||||||
@@ -70,9 +69,9 @@ WHERE
|
|||||||
pay_date >= '2022-01-01 00:00:00'
|
pay_date >= '2022-01-01 00:00:00'
|
||||||
AND pay_date <'2025-07-01 00:00:00'
|
AND pay_date <'2025-07-01 00:00:00'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
store_name,year(pay_date),month(pay_date)
|
store_code,year(pay_date),month(pay_date)
|
||||||
order BY
|
order BY
|
||||||
store_name,年份 asc,月份 asc
|
store_code,年份 asc,月份 asc
|
||||||
|
|
||||||
-- 线上每年各产品数量、产品销售金额
|
-- 线上每年各产品数量、产品销售金额
|
||||||
SELECT
|
SELECT
|
||||||
@@ -91,35 +90,41 @@ order BY
|
|||||||
goods_barcode,年份;
|
goods_barcode,年份;
|
||||||
|
|
||||||
-- 线下每年各产品数量、产品销售金额
|
-- 线下每年各产品数量、产品销售金额
|
||||||
|
-- (订单号重复,根据订单号groupby后失去产品信息,小票支付表仅有订单号可关联,如何计算?)
|
||||||
|
SELECT
|
||||||
|
YEAR(b.pay_time) as '年份',
|
||||||
|
a.goods_name as '商品名称',
|
||||||
|
a.goods_barcode as '商品条码',
|
||||||
|
SUM(a.good_qty) as '产品数量',
|
||||||
|
ROUND(SUM(b.pay_amt), 2) as '销售金额'
|
||||||
|
FROM (
|
||||||
|
-- 订单表(商品信息)
|
||||||
|
SELECT
|
||||||
|
platform_order_no,
|
||||||
|
goods_name,
|
||||||
|
goods_barcode,
|
||||||
|
good_qty
|
||||||
|
FROM dwd_trade_hkaudit_shop_receipt_mt
|
||||||
|
) a
|
||||||
|
INNER JOIN (
|
||||||
|
-- 支付表(支付金额和时间,只取销售金额>0)
|
||||||
|
SELECT
|
||||||
|
platform_order_no,
|
||||||
|
MAX(pay_date) as pay_time,
|
||||||
|
SUM(pay_amt) as pay_amt
|
||||||
|
FROM dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
|
WHERE pay_date >= '2022-01-01 00:00:00'
|
||||||
|
AND pay_date < '2025-07-01 00:00:00'
|
||||||
|
AND pay_amt > 0 -- 只取销售金额(正数)
|
||||||
|
GROUP BY platform_order_no
|
||||||
|
) b ON a.platform_order_no = b.platform_order_no
|
||||||
|
GROUP BY YEAR(b.pay_time), a.goods_name, a.goods_barcode
|
||||||
|
ORDER BY 年份, 销售金额 DESC;
|
||||||
|
|
||||||
-- FROM(
|
|
||||||
-- SELECT
|
|
||||||
-- platform_order_no,
|
|
||||||
-- max(pay_date) as pay_time,
|
|
||||||
-- sum(pay_amt) as amount
|
|
||||||
-- FROM
|
|
||||||
-- dwd_trade_hkaudit_shop_receipt_pay_mt
|
|
||||||
-- WHERE
|
|
||||||
-- pay_date >='2022-01-01 00:00:00'
|
|
||||||
-- AND pay_date <'2025-07-01 00:00:00'
|
|
||||||
-- GROUP BY
|
|
||||||
-- platform_order_no
|
|
||||||
-- ) pay
|
|
||||||
-- left join(
|
|
||||||
-- SELECT
|
|
||||||
-- platform_order_no,
|
|
||||||
-- count(platform_order_no) as num
|
|
||||||
-- FROM
|
|
||||||
-- dwd_trade_hkaudit_shop_receipt_mt
|
|
||||||
-- GROUP BY
|
|
||||||
-- platform_order_no
|
|
||||||
-- ) order_num
|
|
||||||
-- on
|
|
||||||
-- pay.platform_order_no = order_num.platform_order_no
|
|
||||||
|
|
||||||
-- 线上每年前五店铺金额分布
|
-- 线上每年前五店铺金额分布
|
||||||
SELECT
|
SELECT
|
||||||
store_name as '店铺名称',
|
store_code as '店铺编码',
|
||||||
sum(order_settle_amt) as '销售金额'
|
sum(order_settle_amt) as '销售金额'
|
||||||
FROM
|
FROM
|
||||||
dwd_trade_hkaudit_ecommerce_sale_mt
|
dwd_trade_hkaudit_ecommerce_sale_mt
|
||||||
@@ -127,14 +132,14 @@ WHERE
|
|||||||
order_date >= '2022-01-01 00:00:00'
|
order_date >= '2022-01-01 00:00:00'
|
||||||
AND order_date < '2023-01-01 00:00:00'
|
AND order_date < '2023-01-01 00:00:00'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
store_name
|
store_code
|
||||||
order BY
|
order BY
|
||||||
sum(order_settle_amt) desc
|
sum(order_settle_amt) desc
|
||||||
LIMIT 5
|
LIMIT 5
|
||||||
|
|
||||||
-- 线下每年前五店铺金额分布
|
-- 线下每年前五店铺金额分布
|
||||||
SELECT
|
SELECT
|
||||||
store_name as '店铺名称',
|
store_code as '店铺编码',
|
||||||
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额'
|
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额'
|
||||||
FROM
|
FROM
|
||||||
dwd_trade_hkaudit_shop_receipt_pay_mt
|
dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
@@ -142,9 +147,9 @@ WHERE
|
|||||||
pay_date >= '2022-01-01 00:00:00'
|
pay_date >= '2022-01-01 00:00:00'
|
||||||
AND pay_date <'2023-01-01 00:00:00'
|
AND pay_date <'2023-01-01 00:00:00'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
店铺名称
|
店铺编码
|
||||||
order BY
|
order BY
|
||||||
线上店铺前五金额分布 desc
|
销售金额 desc
|
||||||
LIMIT 5
|
LIMIT 5
|
||||||
|
|
||||||
-- 线上每年各省份销售金额、订单数量
|
-- 线上每年各省份销售金额、订单数量
|
||||||
@@ -163,7 +168,18 @@ GROUP BY
|
|||||||
|
|
||||||
-- 线下每年各店铺所在省份销售金额、订单数量
|
-- 线下每年各店铺所在省份销售金额、订单数量
|
||||||
-- (如何确认店铺所在省份?)
|
-- (如何确认店铺所在省份?)
|
||||||
|
SELECT
|
||||||
|
store_code as '店铺编码',
|
||||||
|
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as '销售金额'
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
|
WHERE
|
||||||
|
pay_date >= '2022-01-01 00:00:00'
|
||||||
|
AND pay_date <'2023-01-01 00:00:00'
|
||||||
|
GROUP BY
|
||||||
|
店铺编码
|
||||||
|
order BY
|
||||||
|
销售金额 desc
|
||||||
|
|
||||||
-- 线上每年单笔订单金额分布
|
-- 线上每年单笔订单金额分布
|
||||||
-- (并单如何考虑单笔金额?)
|
-- (并单如何考虑单笔金额?)
|
||||||
@@ -249,7 +265,18 @@ ORDER BY
|
|||||||
END;
|
END;
|
||||||
|
|
||||||
-- 线上每年同一个收货地址销售金额、订单数量(需考虑脱敏情况)
|
-- 线上每年同一个收货地址销售金额、订单数量(需考虑脱敏情况)
|
||||||
|
SELECT
|
||||||
|
地址
|
||||||
|
round(sum(sales.order_settle_amt),2) as '销售金额',
|
||||||
|
COUNT(sales.platform_order_no) +
|
||||||
|
SUM(LENGTH(sales.platform_order_no) - LENGTH(REPLACE(sales.platform_order_no, ',', ''))) as '订单数量'
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_ecommerce_sale_mt
|
||||||
|
WHERE
|
||||||
|
order_date >='2022-01-01 00:00:00'
|
||||||
|
AND order_date <'2025-07-01 00:00:00'
|
||||||
|
GROUP BY
|
||||||
|
地址
|
||||||
|
|
||||||
-- 线上每年各天和各小时订单数和销售金额
|
-- 线上每年各天和各小时订单数和销售金额
|
||||||
-- 各天
|
-- 各天
|
||||||
@@ -296,7 +323,7 @@ FROM(
|
|||||||
SELECT
|
SELECT
|
||||||
platform_order_no,
|
platform_order_no,
|
||||||
max(pay_date) as pay_time,
|
max(pay_date) as pay_time,
|
||||||
sum(pay_amt) as amount
|
round(sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END), 2) as amount
|
||||||
FROM
|
FROM
|
||||||
dwd_trade_hkaudit_shop_receipt_pay_mt
|
dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
WHERE
|
WHERE
|
||||||
@@ -331,7 +358,7 @@ FROM (
|
|||||||
SELECT
|
SELECT
|
||||||
platform_order_no,
|
platform_order_no,
|
||||||
MAX(pay_date) as pay_time,
|
MAX(pay_date) as pay_time,
|
||||||
SUM(pay_amt) as amount
|
sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END) as amount
|
||||||
FROM
|
FROM
|
||||||
dwd_trade_hkaudit_shop_receipt_pay_mt
|
dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
WHERE
|
WHERE
|
||||||
@@ -358,7 +385,7 @@ ORDER BY
|
|||||||
|
|
||||||
-- 线上每年大促期间店铺销售金额、订单数量
|
-- 线上每年大促期间店铺销售金额、订单数量
|
||||||
SELECT
|
SELECT
|
||||||
store_name as '店铺名称',
|
store_code as '店铺编码',
|
||||||
YEAR(order_date) AS '年份',
|
YEAR(order_date) AS '年份',
|
||||||
CASE
|
CASE
|
||||||
WHEN (MONTH(order_date) = 6 AND DAY(order_date) BETWEEN 15 AND 21) THEN '父亲节'
|
WHEN (MONTH(order_date) = 6 AND DAY(order_date) BETWEEN 15 AND 21) THEN '父亲节'
|
||||||
@@ -377,8 +404,8 @@ WHERE order_date >= '2022-01-01 00:00:00'
|
|||||||
(MONTH(order_date) = 6 AND DAY(order_date) BETWEEN 10 AND 20) OR -- 618
|
(MONTH(order_date) = 6 AND DAY(order_date) BETWEEN 10 AND 20) OR -- 618
|
||||||
(MONTH(order_date) = 11 AND DAY(order_date) BETWEEN 1 AND 15) -- 双11
|
(MONTH(order_date) = 11 AND DAY(order_date) BETWEEN 1 AND 15) -- 双11
|
||||||
)
|
)
|
||||||
GROUP BY store_name, YEAR(order_date), 大促类型
|
GROUP BY store_code, YEAR(order_date), 大促类型
|
||||||
ORDER BY store_name ASC, 年份 ASC,
|
ORDER BY store_code ASC, 年份 ASC,
|
||||||
CASE
|
CASE
|
||||||
WHEN '大促类型' = '父亲节' THEN 1
|
WHEN '大促类型' = '父亲节' THEN 1
|
||||||
WHEN '大促类型' = '618' THEN 2
|
WHEN '大促类型' = '618' THEN 2
|
||||||
@@ -386,19 +413,100 @@ ORDER BY store_name ASC, 年份 ASC,
|
|||||||
END;
|
END;
|
||||||
|
|
||||||
-- 线下每年大促期间店铺销售金额、订单数量
|
-- 线下每年大促期间店铺销售金额、订单数量
|
||||||
|
SELECT
|
||||||
|
year(pay_time) as '年份',
|
||||||
|
pay.store as '店铺编码',
|
||||||
|
CASE
|
||||||
|
WHEN (MONTH(pay.pay_time) = 6 AND DAY(pay.pay_time) BETWEEN 15 AND 21) THEN '父亲节'
|
||||||
|
WHEN (MONTH(pay.pay_time) = 6 AND DAY(pay.pay_time) BETWEEN 10 AND 20) THEN '618'
|
||||||
|
WHEN (MONTH(pay.pay_time) = 11 AND DAY(pay.pay_time) BETWEEN 1 AND 15) THEN '双11'
|
||||||
|
ELSE '其他'
|
||||||
|
END as '大促类型',
|
||||||
|
ROUND(SUM(pay.amount), 2) as '销售金额',
|
||||||
|
sum(order_num.num) as '订单数量'
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
platform_order_no,
|
||||||
|
max(store_code) as store,
|
||||||
|
max(pay_date) as pay_time,
|
||||||
|
sum(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END) as amount
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
|
WHERE
|
||||||
|
pay_date >='2022-01-01 00:00:00'
|
||||||
|
AND pay_date <'2025-07-01 00:00:00'
|
||||||
|
AND (
|
||||||
|
(MONTH(pay_date) = 6 AND DAY(pay_date) BETWEEN 15 AND 21) OR -- 父亲节
|
||||||
|
(MONTH(pay_date) = 6 AND DAY(pay_date) BETWEEN 10 AND 20) OR -- 618
|
||||||
|
(MONTH(pay_date) = 11 AND DAY(pay_date) BETWEEN 1 AND 15) -- 双11
|
||||||
|
)
|
||||||
|
GROUP BY
|
||||||
|
platform_order_no
|
||||||
|
) pay
|
||||||
|
left join(
|
||||||
|
SELECT
|
||||||
|
platform_order_no,
|
||||||
|
count(platform_order_no) as num
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_shop_receipt_mt
|
||||||
|
GROUP BY
|
||||||
|
platform_order_no
|
||||||
|
) order_num
|
||||||
|
on
|
||||||
|
pay.platform_order_no = order_num.platform_order_no
|
||||||
|
GROUP BY store_code, YEAR(order_date), 大促类型
|
||||||
|
ORDER BY store_code, 年份,
|
||||||
|
CASE
|
||||||
|
WHEN '大促类型' = '父亲节' THEN 1
|
||||||
|
WHEN '大促类型' = '618' THEN 2
|
||||||
|
WHEN '大促类型' = '双11' THEN 3
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
-- 线上每年订单下单和发货间隔的销售金额、订单数量分布
|
-- 线上每年订单下单和发货间隔的销售金额、订单数量分布
|
||||||
|
-- (并单如何考虑下单时间?)
|
||||||
|
SELECT
|
||||||
|
|
||||||
|
CASE
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_ecommerce_sale_mt sales
|
||||||
|
WHERE
|
||||||
|
order_date >= '2022-01-01 00:00:00'
|
||||||
|
AND order_date < '2025-07-31 00:00:00'
|
||||||
|
|
||||||
-- 线上每年各物流承运商销售金额、订单数量
|
-- 线上每年各物流承运商销售金额、订单数量
|
||||||
|
SELECT
|
||||||
|
year(sales.order_date) AS '年份',
|
||||||
|
carrier as '物流承运商',
|
||||||
|
round(sum(sales.order_settle_amt),2) as '销售金额',
|
||||||
|
COUNT(sales.platform_order_no) +
|
||||||
|
SUM(LENGTH(sales.platform_order_no) - LENGTH(REPLACE(sales.platform_order_no, ',', ''))) as '订单数量'
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_ecommerce_sale_mt sales
|
||||||
|
WHERE
|
||||||
|
order_date >= '2022-01-01 00:00:00'
|
||||||
|
AND order_date < '2025-07-31 00:00:00'
|
||||||
|
GROUP BY
|
||||||
|
year(sales.order_date), carrier
|
||||||
|
order BY 年份, carrier;
|
||||||
|
|
||||||
-- 线上每年退款大于原销售的差异金额、订单数量
|
-- 线上每年退款大于原销售的差异金额、订单数量
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- 线下每年退款大于原销售的差异金额、订单数量
|
-- 线下每年退款大于原销售的差异金额、订单数量
|
||||||
=======
|
SELECT
|
||||||
SELECT * FROM a;113333sss
|
YEAR(pay_time) AS '年份',
|
||||||
>>>>>>> bcf2f3cd58c4c0fbd7ef580d305440999d743a5d
|
SUM(total_refund - total_sale) AS '差异金额',
|
||||||
|
COUNT(*) AS '订单数量'
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
receipt_no,
|
||||||
|
SUM(CASE WHEN pay_amt > 0 THEN pay_amt ELSE 0 END) AS total_sale,
|
||||||
|
SUM(CASE WHEN pay_amt < 0 THEN ABS(pay_amt) ELSE 0 END) AS total_refund,
|
||||||
|
MAX(pay_date) AS pay_time
|
||||||
|
FROM dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||||
|
GROUP BY order_id
|
||||||
|
HAVING total_refund > total_sale
|
||||||
|
)
|
||||||
|
GROUP BY YEAR(pay_time);
|
Binary file not shown.
Reference in New Issue
Block a user