0918SQL
This commit is contained in:
401
SQL.sql
401
SQL.sql
@@ -1 +1,400 @@
|
||||
SELECT * FROM a;11
|
||||
-- 线上店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
||||
SELECT
|
||||
sales.store_name as '店铺名称',
|
||||
year(sales.order_date) 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 '订单数量',
|
||||
round(sum(change.special_barcode_amt),2) as '退款金额',
|
||||
count(refund.platform_order_no) as '退款订单数',
|
||||
round(sum(sales.order_settle_amt)/count(sales.platform_order_no),2) as '订单均价'
|
||||
FROM
|
||||
dwd_trade_hkaudit_ecommerce_sale_mt sales
|
||||
left join dwd_trade_hkaudit_ecommerce_sale_return_mt refund
|
||||
on sales.platform_order_no = refund.platform_order_no
|
||||
left join dwd_trade_hkaudit_ecommerce_sale_change_mt change
|
||||
on refund.platform_order_no = change.platform_order_no
|
||||
WHERE
|
||||
sales.order_date >= '2022-01-01 00:00:00'
|
||||
AND sales.order_date <'2025-07-31 00:00:00'
|
||||
GROUP BY
|
||||
sales.store_name, year(sales.order_date)
|
||||
ORDER BY
|
||||
sales.store_name ASC, 年份 ASC
|
||||
|
||||
|
||||
-- 线下店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
||||
SELECT
|
||||
store_name as '店铺名称',
|
||||
YEAR(pay_date) 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 '订单数量',
|
||||
round(abs(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 '退款订单数'
|
||||
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
|
||||
store_name, YEAR(pay_date)
|
||||
ORDER BY
|
||||
store_name ASC, 年份 ASC;
|
||||
|
||||
-- 线上店铺月度销售金额
|
||||
SELECT
|
||||
store_name as '店铺名称',
|
||||
YEAR(order_date) as '年份',
|
||||
month(order_date) as '月份',
|
||||
round(sum(order_settle_amt),2) 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
|
||||
store_name,年份,月份
|
||||
order BY
|
||||
store_name,年份 asc,月份 asc
|
||||
|
||||
-- 线下店铺月度销售金额
|
||||
SELECT
|
||||
store_name as '店铺名称',
|
||||
year(pay_date) as '年份',
|
||||
month(pay_date) 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 <'2025-07-01 00:00:00'
|
||||
GROUP BY
|
||||
store_name,year(pay_date),month(pay_date)
|
||||
order BY
|
||||
store_name,年份 asc,月份 asc
|
||||
|
||||
-- 线上每年各产品数量、产品销售金额
|
||||
SELECT
|
||||
goods_barcode,
|
||||
year(order_date) as '年份',
|
||||
sum(good_qty) as '产品数量',
|
||||
order_settle_amt 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
|
||||
goods_barcode,year(order_date)
|
||||
order BY
|
||||
goods_barcode,年份;
|
||||
|
||||
-- 线下每年各产品数量、产品销售金额
|
||||
|
||||
-- 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
|
||||
store_name as '店铺名称',
|
||||
sum(order_settle_amt) as '销售金额'
|
||||
FROM
|
||||
dwd_trade_hkaudit_ecommerce_sale_mt
|
||||
WHERE
|
||||
order_date >= '2022-01-01 00:00:00'
|
||||
AND order_date < '2023-01-01 00:00:00'
|
||||
GROUP BY
|
||||
store_name
|
||||
order BY
|
||||
sum(order_settle_amt) desc
|
||||
LIMIT 5
|
||||
|
||||
-- 线下每年前五店铺金额分布
|
||||
SELECT
|
||||
store_name 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
|
||||
LIMIT 5
|
||||
|
||||
-- 线上每年各省份销售金额、订单数量
|
||||
SELECT
|
||||
year(order_date) as '年份,'
|
||||
province as '省份',
|
||||
round(sum(order_settle_amt),2) as '销售金额',
|
||||
count(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
|
||||
年份 asc, province
|
||||
|
||||
-- 线下每年各店铺所在省份销售金额、订单数量
|
||||
-- (如何确认店铺所在省份?)
|
||||
|
||||
|
||||
-- 线上每年单笔订单金额分布
|
||||
-- (并单如何考虑单笔金额?)
|
||||
SELECT
|
||||
YEAR(order_date) AS '年份',
|
||||
a.money_area AS '单笔订单金额',
|
||||
count(a.platform_order_no) as '订单数量',
|
||||
ROUND(sum(a.order_settle_amt),2) AS '销售金额'
|
||||
FROM(
|
||||
SELECT
|
||||
order_settle_amt,
|
||||
platform_order_no,
|
||||
CASE
|
||||
WHEN order_settle_amt >0 AND order_settle_amt <10 THEN '0-10'
|
||||
WHEN order_settle_amt >=10 AND order_settle_amt <50 THEN '10-50'
|
||||
WHEN order_settle_amt >=50 AND order_settle_amt <100 THEN '50-100'
|
||||
WHEN order_settle_amt >=100 AND order_settle_amt <500 THEN '100-500'
|
||||
WHEN order_settle_amt >=500 AND order_settle_amt <1000 THEN '500-1000'
|
||||
WHEN order_settle_amt >=1000 AND order_settle_amt <5000 THEN '1000-5000'
|
||||
WHEN order_settle_amt >=5000 AND order_settle_amt <10000 THEN '5000-10000'
|
||||
WHEN order_settle_amt >=10000 THEN '10000及以上'
|
||||
END AS money_area
|
||||
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'
|
||||
) a
|
||||
GROUP BY
|
||||
a.money_area
|
||||
ORDER BY
|
||||
年份,
|
||||
CASE a.money_area
|
||||
WHEN '0-10' THEN 1
|
||||
WHEN '10-50' THEN 2
|
||||
WHEN '50-100' THEN 3
|
||||
WHEN '100-500' THEN 4
|
||||
WHEN '500-1000' THEN 5
|
||||
WHEN '1000-5000' THEN 6
|
||||
WHEN '5000-10000' THEN 7
|
||||
WHEN '10000及以上' THEN 8
|
||||
END;
|
||||
|
||||
-- 线下每年单笔订单金额分布
|
||||
SELECT
|
||||
YEAR(order_date) AS '年份',
|
||||
a.money_area AS '单笔订单金额',
|
||||
count(a.platform_order_no) as '订单数量',
|
||||
ROUND(sum(a.order_settle_amt),2) AS '销售金额'
|
||||
FROM(
|
||||
SELECT
|
||||
order_settle_amt,
|
||||
platform_order_no,
|
||||
CASE
|
||||
WHEN pay_amt >0 AND pay_amt <10 THEN '0-10'
|
||||
WHEN pay_amt >=10 AND pay_amt <50 THEN '10-50'
|
||||
WHEN pay_amt >=50 AND pay_amt <100 THEN '50-100'
|
||||
WHEN pay_amt >=100 AND pay_amt <500 THEN '100-500'
|
||||
WHEN pay_amt >=500 AND pay_amt <1000 THEN '500-1000'
|
||||
WHEN pay_amt >=1000 AND pay_amt <5000 THEN '1000-5000'
|
||||
WHEN pay_amt >=5000 AND pay_amt <10000 THEN '5000-10000'
|
||||
WHEN pay_amt >=10000 THEN '10000及以上'
|
||||
END AS money_area
|
||||
FROM
|
||||
dwd_trade_hkaudit_shop_receipt_pay_mt
|
||||
WHERE
|
||||
order_date >='2022-01-01 00:00:00'
|
||||
AND order_date <'2025-07-01 00:00:00'
|
||||
) a
|
||||
GROUP BY
|
||||
a.money_area
|
||||
ORDER BY
|
||||
年份,
|
||||
CASE a.money_area
|
||||
WHEN '0-10' THEN 1
|
||||
WHEN '10-50' THEN 2
|
||||
WHEN '50-100' THEN 3
|
||||
WHEN '100-500' THEN 4
|
||||
WHEN '500-1000' THEN 5
|
||||
WHEN '1000-5000' THEN 6
|
||||
WHEN '5000-10000' THEN 7
|
||||
WHEN '10000及以上' THEN 8
|
||||
END;
|
||||
|
||||
-- 线上每年同一个收货地址销售金额、订单数量(需考虑脱敏情况)
|
||||
|
||||
|
||||
-- 线上每年各天和各小时订单数和销售金额
|
||||
-- 各天
|
||||
SELECT
|
||||
year(order_date) as '年份',
|
||||
date(order_date) as '日期',
|
||||
COUNT(sales.platform_order_no) +
|
||||
SUM(LENGTH(sales.platform_order_no) - LENGTH(REPLACE(sales.platform_order_no, ',', ''))) as '订单数量',
|
||||
ROUND(SUM(final_amount),2) 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
|
||||
year(order_date),date(order_date)
|
||||
order BY
|
||||
年份, 日期;
|
||||
-- 各小时
|
||||
SELECT
|
||||
year(order_date) as '年份',
|
||||
CONCAT(HOUR(order_date), '点到', HOUR(order_date) + 1, '点') as '时间',
|
||||
COUNT(platform_order_no) +
|
||||
SUM(LENGTH(platform_order_no) - LENGTH(REPLACE(platform_order_no, ',', ''))) as '订单数量',
|
||||
ROUND(SUM(order_settle_amt),2) 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
|
||||
year(order_date), HOUR(order_date)
|
||||
order BY
|
||||
年份, 时间;
|
||||
|
||||
-- 线下每年各天和各小时订单数和销售金额
|
||||
-- 各天
|
||||
SELECT
|
||||
year(pay.pay_time) as '年份',
|
||||
date(pay.pay_time) as '日期',
|
||||
sum(order_num.num) as '订单数量',
|
||||
round(sum(pay.amount),2) as '销售金额'
|
||||
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
|
||||
GROUP BY
|
||||
year(pay.pay_time),date(pay.pay_time)
|
||||
order BY
|
||||
年份,日期;
|
||||
|
||||
-- 各小时
|
||||
SELECT
|
||||
YEAR(pay.pay_time) as '年份',
|
||||
CONCAT(HOUR(pay.pay_time), '点到', HOUR(pay.pay_time) + 1, '点') as '时间',
|
||||
SUM(order_num.num) as '订单数量',
|
||||
ROUND(SUM(pay.amount), 2) as '销售金额'
|
||||
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
|
||||
GROUP BY
|
||||
YEAR(pay.pay_time), HOUR(pay.pay_time)
|
||||
ORDER BY
|
||||
年份, 时间;
|
||||
|
||||
-- 线上每年大促期间店铺销售金额、订单数量
|
||||
SELECT
|
||||
store_name as '店铺名称',
|
||||
YEAR(order_date) AS '年份',
|
||||
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 10 AND 20) THEN '618'
|
||||
WHEN (MONTH(order_date) = 11 AND DAY(order_date) BETWEEN 1 AND 15) THEN '双11'
|
||||
ELSE '其他'
|
||||
END as '大促类型',
|
||||
ROUND(SUM(order_settle_amt), 2) as '销售金额',
|
||||
COUNT(platform_order_no) +
|
||||
SUM(LENGTH(platform_order_no) - LENGTH(REPLACE(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-31 00:00:00'
|
||||
AND (
|
||||
(MONTH(order_date) = 6 AND DAY(order_date) BETWEEN 15 AND 21) OR -- 父亲节
|
||||
(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
|
||||
)
|
||||
GROUP BY store_name, YEAR(order_date), 大促类型
|
||||
ORDER BY store_name ASC, 年份 ASC,
|
||||
CASE
|
||||
WHEN '大促类型' = '父亲节' THEN 1
|
||||
WHEN '大促类型' = '618' THEN 2
|
||||
WHEN '大促类型' = '双11' THEN 3
|
||||
END;
|
||||
|
||||
-- 线下每年大促期间店铺销售金额、订单数量
|
||||
|
||||
|
||||
|
||||
-- 线上每年订单下单和发货间隔的销售金额、订单数量分布
|
||||
|
||||
|
||||
-- 线上每年各物流承运商销售金额、订单数量
|
||||
|
||||
|
||||
-- 线上每年退款大于原销售的差异金额、订单数量
|
||||
|
||||
|
||||
-- 线下每年退款大于原销售的差异金额、订单数量
|
Reference in New Issue
Block a user