-- 1.1线上各店铺每年度销售金额、订单数量、订单均价
-- 数量和单价只能计算有订单的，账单的不能算
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	store_code AS "店铺编码",
	MAX(store_name_t) AS "店铺名称",
	SUM(goods_amt_t) AS "销售金额（元）",
	SUM(order_freight_amt_t) AS "运费金额（元）",
	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
	COUNT(DISTINCT platform_order_no) AS "订单数量",
	ROUND((SUM(goods_amt_t) + SUM(order_freight_amt_t)) / COUNT(DISTINCT platform_order_no), 2)  AS "订单均价（元）"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(order_freight_amt) AS order_freight_amt_t,
		SUM(goods_qty) AS goods_qty_t,
		SUM(goods_amt) AS goods_amt_t
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
)
GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC;

-- 账单店铺金额
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	store_code AS "店铺编码",
	MAX(store_name) AS "店铺名称",
	SUM(goods_amt) AS "销售金额（元）"
FROM custom_online_sale_bill_local
WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(mgclear_time, 1, 4), store_code
ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC;

------------------------------------------------------------------
-- 1.2线上各店铺每年度净销售金额
SELECT 
	t1.perYear AS "年份",
	t1.store_code AS "店铺编码",
	t1.storeName AS "店铺名称",
	t1.goodsAmt AS "销售金额（元）",
	t1.orderFreightAmt AS "运费金额（元）",	
	t2.returnGoodsAmt AS "退货金额（元）",
	t2.returnFreightAmt AS "退货运费金额（元）",
	t3.orderChangeAmt AS "发货调整金额（元）",
	t1.goodsAmt + t1.orderFreightAmt + t2.returnGoodsAmt
		+ t2.returnFreightAmt + t3.orderChangeAmt AS "净销售金额（元）"
FROM (
	SELECT
		SUBSTR(mgclear_time_t, 1, 4) AS perYear,
		store_code,
		MAX(store_name_t) AS storeName,
		SUM(goods_amt_t) AS goodsAmt,
		SUM(order_freight_amt_t) AS orderFreightAmt
	FROM (SELECT
			store_code,
			MAX(store_name) AS store_name_t,
			system_order_no,
			platform_order_no,
			MIN(mgclear_time) AS mgclear_time_t,
			MAX(order_freight_amt) AS order_freight_amt_t,
			SUM(goods_qty) AS goods_qty_t,
			SUM(goods_amt) AS goods_amt_t
		FROM custom_online_sale_order_local
		WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
		GROUP BY store_code, system_order_no, platform_order_no
	) GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code
) t1 LEFT JOIN (
	SELECT
		SUBSTR(mgclear_time_t, 1, 4) AS perYear,
		store_code,
		SUM(return_freight_amt_t) AS returnFreightAmt,
		SUM(return_goods_amt_t) AS returnGoodsAmt
	FROM (SELECT
			store_code,
			system_order_no,
			platform_order_no,
			MIN(mgclear_time) AS mgclear_time_t,
			MAX(return_freight_amt) AS return_freight_amt_t,
			SUM(return_goods_qty) AS return_goods_qty_t,
			SUM(return_goods_amt) AS return_goods_amt_t
		FROM custom_online_sale_return_local
		WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
		GROUP BY store_code, system_order_no, platform_order_no
	) GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code
) t2 ON t1.perYear = t2.perYear AND t1.store_code = t2.store_code
LEFT JOIN (
	SELECT SUBSTR(mgclear_time, 1, 4) AS perYear, store_code, SUM(special_barcode_amt) AS orderChangeAmt
	FROM custom_online_sale_change_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY SUBSTR(mgclear_time, 1, 4), store_code
) t3 ON t1.perYear = t3.perYear AND t1.store_code = t3.store_code
ORDER BY t1.perYear, t1.goodsAmt + t1.orderFreightAmt + t2.returnGoodsAmt
		+ t2.returnFreightAmt + t3.orderChangeAmt DESC;

-- 账单店铺金额
SELECT
	t1.perYear AS "年份",
	t1.store_code AS "店铺编码",
	t1.store_name AS "店铺名称",
	t1.sale_amount AS "销售金额（元）",
	t2.return_amount AS "退货金额（元）",
	t1.sale_amount + t2.return_amount AS "净销售金额（元）"
FROM (SELECT
		SUBSTR(mgclear_time, 1, 4) AS perYear,
		store_code,
		MAX(store_name) AS store_name,
		SUM(goods_amt) AS sale_amount
	FROM custom_online_sale_bill_local
	WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY SUBSTR(mgclear_time, 1, 4), store_code
) t1 LEFT JOIN (
	SELECT
		SUBSTR(mgclear_time, 1, 4) AS perYear,
		store_code,
		SUM(goods_amt) AS return_amount
	FROM custom_online_sale_bill_local
	WHERE goods_amt < 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY SUBSTR(mgclear_time, 1, 4), store_code
) t2 ON t1.perYear = t2.perYear AND t1.store_code = t2.store_code
ORDER BY t1.perYear, (t1.sale_amount + t2.return_amount) DESC;

------------------------------------------------------------------
-- 1.3线上各店铺每年月度销售金额
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	SUBSTR(mgclear_time_t, 6, 2) AS "月份",
	store_code AS "店铺编码",
	MAX(store_name_t) AS "店铺名称",
	SUM(goods_amt_t) AS "销售金额（元）",
	SUM(order_freight_amt_t) AS "运费金额（元）",
	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
	COUNT(DISTINCT platform_order_no) AS "订单数量",
	ROUND((SUM(goods_amt_t) + SUM(order_freight_amt_t)) / COUNT(DISTINCT platform_order_no), 2)  AS "订单均价（元）"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(order_freight_amt) AS order_freight_amt_t,
		SUM(goods_qty) AS goods_qty_t,
		SUM(goods_amt) AS goods_amt_t
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
) 
GROUP BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 2), store_code
ORDER BY SUBSTR(mgclear_time_t, 1, 4), store_code, SUBSTR(mgclear_time_t, 6, 2);

-- 账单店铺金额
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	SUBSTR(mgclear_time, 6, 2) AS "月份",
	store_code AS "店铺编码",
	MAX(store_name) AS "店铺名称",
	SUM(goods_amt) AS "销售金额（元）"
FROM custom_online_sale_bill_local
WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2), store_code
ORDER BY SUBSTR(mgclear_time, 1, 4), store_code, SUBSTR(mgclear_time, 6, 2);

------------------------------------------------------------------
-- 1.4线上每年前五店铺金额分布

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 1.5线上每年各产品数量、产品销售金额
-- 订单中6条商品为空的， 忽略
SELECT COUNT() FROM  custom_online_sale_order_local WHERE goods_barcode ='';

SELECT * FROM custom_online_sale_order_local;

SELECT * FROM dim_hkaudit_goods_mt WHERE barcode IN (
SELECT barcode
FROM dim_hkaudit_goods_mt GROUP BY barcode HAVING COUNT(DISTINCT goods_code) > 1)
ORDER By barcode ;

SELECT * FROM dim_hkaudit_goods_mt dhgm WHERE barcode  = 'VRDBJ41159A01001A11';
SELECT * FROM dim_hkaudit_goods_mt WHERE goods_code IN (SELECT goods_barcode FROM audit_bi_pro.custom_online_sale_order_local);


SELECT * FROM dim_hkaudit_goods_mt a left join  custom_online_sale_order_local b on a.barcode  = b.goods_barcode ;

SELECT COUNT()  FROM dim_hkaudit_goods_mt;
SELECT COUNT()  FROM dim_hkaudit_goods_mt_local;

-- 不关联商品名称（每个表单独算）
--SELECT
--	SUBSTR(mgclear_time, 1, 4) AS "年份",
--	goods_barcode AS "商品条码",
--	SUM(goods_qty) AS "商品数量",
--	SUM(goods_amt) AS "商品销售金额（元）"
--FROM custom_online_sale_order_local
--WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
--GROUP BY SUBSTR(mgclear_time, 1, 4), goods_barcode
--ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC;

-- 账单店铺金额
--SELECT
--	SUBSTR(mgclear_time, 1, 4) AS "年份",
--	goods_barcode AS "商品条码",
--	SUM(goods_qty) AS "商品数量",
--	SUM(goods_amt) AS "商品销售金额（元）"
--FROM custom_online_sale_bill_local
--WHERE goods_amt >= 0 mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
--GROUP BY SUBSTR(mgclear_time, 1, 4), goods_barcode
--ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC;

-- 关联名称
--SELECT
--	SUBSTR(t1.mgclear_time, 1, 4) AS "年份",
--	t1.goods_barcode AS "商品条码",
--	MAX(t2.goods_names) AS "商品名称（多个合并）",
--	SUM(t1.goods_qty) AS "商品数量",
--	SUM(t1.goods_amt) AS "商品销售金额（元）"
--FROM custom_online_sale_order_local t1
--LEFT JOIN (SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode
--) t2 ON t1.goods_barcode = t2.barcode 
--WHERE t1.mgclear_time <> '' AND SUBSTR(t1.mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(t1.mgclear_time, 1, 10) <= '2025-06-30'
--GROUP BY SUBSTR(t1.mgclear_time, 1, 4), t1.goods_barcode
--ORDER BY SUBSTR(t1.mgclear_time, 1, 4), SUM(t1.goods_amt) DESC;

----------------------
-- 不关联商品名称（两表合并算）
--SELECT
--	perYear AS "年份",
--	goods_barcode AS "商品条码",
--	SUM(goods_qty) AS "商品数量",
--	SUM(goods_amt) AS "商品销售金额（元）"
--FROM (SELECT
--		SUBSTR(mgclear_time, 1, 4) AS perYear,
--		goods_barcode,
--		goods_qty,
--		goods_amt
--	FROM custom_online_sale_order_local
--	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
--	UNION ALL
--	SELECT
--		SUBSTR(mgclear_time, 1, 4) AS perYear,
--		goods_barcode,
--		goods_qty,
--		goods_amt
--	FROM custom_online_sale_bill_local
--	WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
--)
--GROUP BY perYear, goods_barcode
--ORDER BY perYear, SUM(goods_amt) DESC;

-- 关联商品名称
SELECT
	t1.perYear AS "年份",
	t1.goods_barcode AS "商品条码",
	MAX(t2.goods_names) AS "商品名称（多个合并）",
	SUM(t1.goods_qty) AS "商品数量",
	SUM(t1.goods_amt) AS "商品销售金额（元）"
FROM (SELECT
		SUBSTR(mgclear_time, 1, 4) AS perYear,
		goods_barcode,
		goods_qty,
		goods_amt
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	UNION ALL
	SELECT
		SUBSTR(mgclear_time, 1, 4) AS perYear,
		goods_barcode,
		goods_qty,
		goods_amt
	FROM custom_online_sale_bill_local
	WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
) t1 LEFT JOIN (
	SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode
) t2 ON t1.goods_barcode = t2.barcode 
GROUP BY t1.perYear, t1.goods_barcode
ORDER BY t1.perYear, SUM(t1.goods_amt) DESC;

------------------------------------------------------------------
-- 2.1线上每年各省份销售金额、订单数量及其占比
-- 1234791条平台订单没有省份
SELECT COUNT(DISTINCT platform_order_no)  FROM custom_online_sale_order_local WHERE province = '';
SELECT source_system, COUNT(DISTINCT platform_order_no)  FROM custom_online_sale_order_local WHERE province = '' GROUP BY source_system;
-- 只能计算有订单的，账单的不能算（没有省份）
-- 考虑店铺单号重复问题 非换货单有946单重复，加上换货单有1229条重复
-- 忽略省份为空的平台订单
-- 同一平台订单号在多个店铺存在的有1230单 暂时不考虑这种情况
SELECT COUNT() FROM (
SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT store_code) > 1); 

SELECT 
	a.perYear AS "年份",
	a.province_t AS "省份",
	a.goodsAmt AS "销售金额（元）",
	a.orderFreightAmt AS "运费金额（元）",
	a.goodsAmt + a.orderFreightAmt AS "销售金额（元）（包含运费）",
	a.order_amt AS "订单数量",
	b.all_order_count AS "订单总数量",
	ROUND((a.goodsAmt + a.orderFreightAmt) / b.all_order_count, 2)  AS "订单占比"
FROM (SELECT 
		SUBSTR(mgclear_time_t, 1, 4) AS perYear,
		province_t,
		SUM(goods_amt_t) AS goodsAmt,
		SUM(order_freight_amt_t) AS orderFreightAmt,
		COUNT(DISTINCT platform_order_no) AS order_amt
	FROM (SELECT
			store_code,
			MAX(store_name) AS store_name_t,
			system_order_no,
			platform_order_no,
			MIN(mgclear_time) AS mgclear_time_t,
			MAX(order_freight_amt) AS order_freight_amt_t,
			SUM(goods_qty) AS goods_qty_t,
			SUM(goods_amt) AS goods_amt_t,
			MAX(province) AS province_t
		FROM custom_online_sale_order_local
		WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND province <> ''
		GROUP BY store_code, system_order_no, platform_order_no
	)
	GROUP BY SUBSTR(mgclear_time_t, 1, 4), province_t
) a LEFT JOIN (
	SELECT
		perYear,
		SUM(order_amt) AS all_order_count
	FROM (SELECT SUBSTR(mgclear_time, 1, 4) AS perYear, province, COUNT(DISTINCT platform_order_no) AS order_amt
		FROM custom_online_sale_order_local
		WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND province <> ''
		GROUP BY SUBSTR(mgclear_time, 1, 4), province
	) GROUP BY perYear
) b ON a.perYear = b.perYear
ORDER BY a.perYear, a.goodsAmt + a.orderFreightAmt DESC;

-- 考虑同一订单号多个店铺情况
--SELECT 
--	a.perYear AS "年份",
--	a.province_t AS "省份",
--	a.goodsAmt AS "销售金额（元）",
--	a.orderFreightAmt AS "运费金额（元）",
--	a.goodsAmt + a.orderFreightAmt AS "销售金额（元）（包含运费）",
--	a.order_amt AS "订单数量",
--	b.all_order_count AS "订单总数量",
--	ROUND((a.sale_amount + a.freight_amount) / b.all_order_count, 2)  AS "订单占比"
--FROM (SELECT
--		perYear,
--		province_t,
--		SUM(goods_amt_t_t) AS goodsAmt,
--		xxx
--	FROM (SELECT
--			SUBSTR(mgclear_time_t, 1, 4) AS perYear,
--			store_code,
--			province_t,
--			SUM(goods_amt_t) AS goods_amt_t_t,
--			SUM(order_freight_amt_t) AS order_freight_amt_t_t,
--			COUNT(DISTINCT platform_order_no) AS order_amt_t
--		FROM (SELECT
--				store_code,
--				MAX(store_name) AS store_name_t,
--				system_order_no,
--				platform_order_no,
--				MIN(mgclear_time) AS mgclear_time_t,
--				MAX(order_freight_amt) AS order_freight_amt_t,
--				SUM(goods_qty) AS goods_qty_t,
--				SUM(goods_amt) AS goods_amt_t,
--				MAX(province) AS province_t
--			FROM custom_online_sale_order_local
--			GROUP BY store_code, system_order_no, platform_order_no
--		) 
--		WHERE mgclear_time_t <> '' AND SUBSTR(mgclear_time_t, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time_t, 1, 10) <= '2025-06-30'
--		GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code, province_t
--	) GROUP BY perYear, province_t
--) a

------------------------------------------------------------------
-- 2.2线上每年各等级城市销售金额、订单数量及其占比
-- 城市为空 -> 其他
-- 省直辖县级行政区 -> 区域替换城市（其他区和空也直接换） 
-- 湖北省直辖县 -> 区域替换城市（其它区也直接换） 
-- 县 -> 省份替换城市
-- 自治区直辖县级行政区划 -> 区域替换城市
-- 省直辖县级行政区划 -> 区域替换城市（其他区和空也直接换） 
-- 新疆维吾尔自治区直辖县 -> 区域替换城市
-- 维吾尔自治区 -> 区域替换城市
-- 河南省直辖县 -> 区域替换城市
-- 市辖区 -> 省份替换城市
-- 广东 -> 区域替换城市
-- 湖北 -> 区域替换城市
SELECT city, COUNT() FROM custom_online_sale_order_local GROUP BY city;

SELECT DISTINCT region FROM custom_online_sale_order_local  WHERE city = '省直辖县级行政区';
SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = '';
SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = '其它区';

SELECT DISTINCT region FROM custom_online_sale_order_local  WHERE city = '湖北省直辖县';

SELECT DISTINCT province  FROM custom_online_sale_order_local WHERE city = '县';

SELECT *  FROM custom_online_sale_order_local  WHERE city = '自治区直辖县级行政区划';

SELECT DISTINCT region  FROM custom_online_sale_order_local  WHERE city = '省直辖县级行政区划';
SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = '';
SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = '其它区';

SELECT * FROM custom_online_sale_order_local  WHERE city = '新疆维吾尔自治区直辖县';

SELECT * FROM custom_online_sale_order_local  WHERE city = '维吾尔自治区';

SELECT * FROM custom_online_sale_order_local  WHERE city = '河南省直辖县';

SELECT * FROM custom_online_sale_order_local  WHERE city = '市辖区';

SELECT * FROM custom_online_sale_order_local  WHERE city = '广东';

SELECT * FROM custom_online_sale_order_local  WHERE city = '湖北';

-- 1236382条平台订单没有城市
SELECT source_system, COUNT(DISTINCT platform_order_no)  FROM custom_online_sale_order_local WHERE city = '' GROUP BY source_system;
-- 城市和等级关联到的只有5695单 需要手工调整
SELECT DISTINCT city FROM custom_online_sale_order_local;
-- 只能计算有订单的，账单的不能算（没有城市）
-- 忽略城市为空的平台订单
SELECT 
	a.perYear AS "年份",
	a.city_grade_t AS "城市等级",
	a.goodsAmt AS "销售金额（元）",
	a.orderFreightAmt AS "运费金额（元）",
	a.goodsAmt + a.orderFreightAmt AS "销售金额（元）（包含运费）",
	a.order_amt AS "订单数量",
	b.all_order_count AS "订单总数量",
	ROUND((a.goodsAmt + a.orderFreightAmt) / b.all_order_count, 2)  AS "订单占比"
FROM (SELECT 
		SUBSTR(mgclear_time_t, 1, 4) AS perYear,
		city_grade_t,
		SUM(goods_amt_t) AS goodsAmt,
		SUM(order_freight_amt_t) AS orderFreightAmt,
		COUNT(DISTINCT platform_order_no) AS order_amt
	FROM (SELECT
			store_code,
			MAX(store_name) AS store_name_t,
			system_order_no,
			platform_order_no,
			MIN(mgclear_time) AS mgclear_time_t,
			MAX(order_freight_amt) AS order_freight_amt_t,
			SUM(goods_qty) AS goods_qty_t,
			SUM(goods_amt) AS goods_amt_t,
			MAX(t2.city_grade) AS city_grade_t
		FROM custom_online_sale_order_local t1
		LEFT JOIN custom_online_city_grade_local t2 ON t1.city = t2.city
		WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND t2.city_grade <> ''
		GROUP BY store_code, system_order_no, platform_order_no
	)
	GROUP BY SUBSTR(mgclear_time_t, 1, 4), city_grade_t
) a LEFT JOIN (
	SELECT
		perYear,
		SUM(order_amt) AS all_order_count
	FROM (SELECT SUBSTR(mgclear_time, 1, 4) AS perYear, t2.city_grade, COUNT(DISTINCT platform_order_no) AS order_amt
		FROM custom_online_sale_order_local t1
		LEFT JOIN custom_online_city_grade_local t2 ON t1.city = t2.city
		WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND t2.city_grade <> ''
		GROUP BY SUBSTR(mgclear_time, 1, 4), t2.city_grade
	) GROUP BY perYear
) b ON a.perYear = b.perYear
ORDER BY a.perYear, a.goodsAmt + a.orderFreightAmt DESC;

------------------------------------------------------------------
-- 3.1线上每年单笔订单金额分布及其占比

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 3.2线上每年同一个收货地址的地址数量、销售金额、订单数量
-- 100053条
SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT consignee_add) > 1;
SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = '4920083542368856013A';
-- SBZ换货没有标识 | 换货单或者手工单发货地址为明文，与平台是一个地址，但是平台属于密文，只取一个
-- 1869294条平台订单没有收货地址，账单的都没有
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	consignee_add_t AS "收货地址",
	SUM(goods_amt_t) AS "销售金额（元）",
	SUM(order_freight_amt_t) AS "运费金额（元）",
	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
	COUNT(DISTINCT platform_order_no) AS "订单数量"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(order_freight_amt) AS order_freight_amt_t,
		SUM(goods_qty) AS goods_qty_t,
		SUM(goods_amt) AS goods_amt_t,
		MAX(consignee_add) AS consignee_add_t
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND consignee_add <> ''
	GROUP BY store_code, system_order_no, platform_order_no
)
GROUP BY SUBSTR(mgclear_time_t, 1, 4), consignee_add_t
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC;

-- 省份+地址
--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = ''; -- 1869294
--SELECT COUNT() FROM custom_online_sale_order_local WHERE province = ''; -- 1869251
--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = '' AND province = ''; -- 1869249
--
--SELECT 
--	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
--	consignee_add_t AS "收货地址",
--	SUM(goods_amt_t) AS "销售金额（元）",
--	SUM(order_freight_amt_t) AS "运费金额（元）",
--	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
--	COUNT(DISTINCT platform_order_no) AS "订单数量"
--FROM (SELECT
--		store_code,
--		MAX(store_name) AS store_name_t,
--		system_order_no,
--		platform_order_no,
--		MIN(mgclear_time) AS mgclear_time_t,
--		MAX(order_freight_amt) AS order_freight_amt_t,
--		SUM(goods_qty) AS goods_qty_t,
--		SUM(goods_amt) AS goods_amt_t,
--		CONCAT(MAX(province), MAX(consignee_add)) AS consignee_add_t
--	FROM custom_online_sale_order_local
--	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND consignee_add <> ''
--	GROUP BY store_code, system_order_no, platform_order_no
--)
--GROUP BY SUBSTR(mgclear_time_t, 1, 4), consignee_add_t
--ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC;

------------------------------------------------------------------
-- 3.3线上每年各天和各小时订单数量和销售金额
-- mgclear_time没有时分秒的数量 28669 SBZE3的部分单子  计算各小时的需要去除,时间为空的1792612
SELECT * FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND LENGTH(mgclear_time) <= 10;
-- 账单mgclear_time没有时分秒的数量 0 ,时间为空的5093196
SELECT COUNT() FROM custom_online_sale_bill_local WHERE mgclear_time = '' ;
SELECT COUNT() FROM custom_online_sale_bill_local WHERE mgclear_time <> '' AND LENGTH(mgclear_time) <= 10;
-- 账单的不能算订单数量
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	SUBSTR(mgclear_time_t, 6, 5) AS "日期",
	SUM(goods_amt_t) AS "销售金额（元）",
	SUM(order_freight_amt_t) AS "运费金额（元）",
	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
	COUNT(DISTINCT platform_order_no) AS "订单数量"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(order_freight_amt) AS order_freight_amt_t,
		SUM(goods_qty) AS goods_qty_t,
		SUM(goods_amt) AS goods_amt_t
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
)
GROUP BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 5)
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC;

-- 账单店铺金额
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	SUBSTR(mgclear_time, 6, 5) AS "日期",
	SUM(goods_amt) AS "销售金额（元）"
FROM custom_online_sale_bill_local
WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 5)
ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC;


-- 按照小时算 ----------
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	time_area AS "时间区间",
	SUM(goods_amt_t) AS "销售金额（元）",
	SUM(order_freight_amt_t) AS "运费金额（元）",
	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
	COUNT(DISTINCT platform_order_no) AS "订单数量"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(order_freight_amt) AS order_freight_amt_t,
		SUM(goods_qty) AS goods_qty_t,
		SUM(goods_amt) AS goods_amt_t,
		CASE WHEN LENGTH(mgclear_time_t) > 10 THEN
			CASE
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 0 THEN '0-1点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 1 THEN '1-2点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 2 THEN '2-3点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 3 THEN '3-4点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 4 THEN '4-5点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 5 THEN '5-6点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 6 THEN '6-7点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 7 THEN '7-8点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 8 THEN '8-9点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 9 THEN '9-10点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 10 THEN '10-11点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 11 THEN '11-12点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 12 THEN '12-13点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 13 THEN '13-14点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 14 THEN '14-15点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 15 THEN '15-16点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 16 THEN '16-17点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 17 THEN '17-18点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 18 THEN '18-19点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 19 THEN '19-20点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 20 THEN '20-21点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 21 THEN '21-22点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 22 THEN '22-23点'
				WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 23 THEN '23-24点'
			END
		ELSE '其他' END AS time_area
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
)
WHERE time_area <> '其他'
GROUP BY SUBSTR(mgclear_time_t, 1, 4), time_area
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC;

-- 账单店铺金额
-- 22 23年没有带时间的
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	time_area AS "时间区间",
	SUM(goods_amt) AS "销售金额（元）"
FROM (SELECT
		mgclear_time,
		CASE
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 0 THEN '0-1点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 1 THEN '1-2点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 2 THEN '2-3点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 3 THEN '3-4点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 4 THEN '4-5点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 5 THEN '5-6点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 6 THEN '6-7点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 7 THEN '7-8点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 8 THEN '8-9点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 9 THEN '9-10点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 10 THEN '10-11点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 11 THEN '11-12点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 12 THEN '12-13点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 13 THEN '13-14点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 14 THEN '14-15点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 15 THEN '15-16点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 16 THEN '16-17点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 17 THEN '17-18点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 18 THEN '18-19点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 19 THEN '19-20点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 20 THEN '20-21点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 21 THEN '21-22点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 22 THEN '22-23点'
			WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 23 THEN '23-24点'
		END AS time_area,
		goods_amt
	FROM custom_online_sale_bill_local
	WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND LENGTH(mgclear_time) > 10
) GROUP BY SUBSTR(mgclear_time, 1, 4), time_area
ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC;

------------------------------------------------------------------
-- 3.4线上每年大促期间店铺销售金额、订单数量和占比

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 4.1线上每年订单下单和发货间隔的销售金额、订单数量分布

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 4.2线上每年各物流承运商销售金额、订单数量
-- 932303条平台订单物流承运商为空 账单的为SBZ 40条财务手工单,无平台订单号不考虑
SELECT COUNT(DISTINCT platform_order_no) FROM  custom_online_sale_order_local WHERE carrier = '';

SELECT carrier, COUNT(DISTINCT platform_order_no) FROM  custom_online_sale_order_local GROUP BY carrier;

SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	carrierName AS "承运商",
	SUM(goods_amt_t) AS "销售金额（元）",
	SUM(order_freight_amt_t) AS "运费金额（元）",
	SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额（元）（包含运费）",
	COUNT(DISTINCT platform_order_no) AS "订单数量"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(order_freight_amt) AS order_freight_amt_t,
		SUM(goods_qty) AS goods_qty_t,
		SUM(goods_amt) AS goods_amt_t,
		MAX(carrier) AS carrier_t,
		CASE
			WHEN carrier_t IN ('shunfeng') OR carrier_t LIKE 'sf%' OR carrier_t LIKE 'SF%' OR carrier_t LIKE '顺丰%' THEN '顺丰'
			WHEN carrier_t IN ('postb', 'eyb') OR carrier_t LIKE 'ems%' OR carrier_t LIKE 'EMS%' THEN '邮政'
			WHEN carrier_t LIKE 'yunda%' OR carrier_t LIKE 'YUNDA%' THEN '韵达'
			WHEN carrier_t IN ('ZT') OR carrier_t LIKE 'zto%' OR carrier_t LIKE 'ZTO%' OR carrier_t LIKE '中通%' THEN '中通'
			WHEN carrier_t LIKE 'jd%' OR carrier_t LIKE 'JD%' OR carrier_t LIKE '京东%' THEN '京东'
			WHEN carrier_t IN ('ST#DW', 'ST') OR carrier_t LIKE 'sto%' OR carrier_t LIKE 'STO%' OR carrier_t LIKE '申通%' THEN '申通'
			WHEN carrier_t LIKE 'jt%' OR carrier_t LIKE 'JT%' THEN '极兔'
			WHEN carrier_t IN ('YT') OR carrier_t LIKE 'yto%' OR carrier_t LIKE 'YTO%' OR carrier_t LIKE '圆通%' THEN '圆通'
			WHEN carrier_t IN ('rider') THEN '骑士'
			WHEN carrier_t IN ('dbl') THEN '德邦'
			WHEN carrier_t IN ('htky') THEN '汇通'
			WHEN carrier_t IN ('QSKD') THEN '千顺'
			WHEN carrier_t IN ('fengwang') THEN '丰网'
			WHEN carrier_t IN ('best') THEN '百世'
			WHEN carrier_t IN ('ttkdex') THEN '天天'
		ELSE carrier_t
		END AS carrierName
	FROM custom_online_sale_order_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
)
GROUP BY SUBSTR(mgclear_time_t, 1, 4), carrierName
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC;

------------------------------------------------------------------
-- 4.3线上每年各月物流单数量
-- 按照最小下单时间，物流单往前归
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	SUBSTR(mgclear_time, 6, 2) AS "月份",
	COUNT(DISTINCT main_logistic_bill) AS "物流单数量"
FROM custom_online_sale_order_local
WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND main_logistic_bill <> ''
GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2)
ORDER BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2);

------------------------------------------------------------------
-- 5.1线上各店铺每年度退款金额
-- 账单有没有和退款中重复的？？？？？？？？？？？？？
-- 1200609条平台订单号为空
SELECT COUNT() FROM custom_online_sale_return_local WHERE platform_order_no = '';
-- 没有
SELECT * FROM custom_online_sale_return_local WHERE platform_order_no <> '' AND  platform_order_no IN (SELECT platform_order_no FROM custom_online_sale_bill_local);
-- 593条 DYE2  SF00891-19条
SELECT * FROM custom_online_sale_return_local WHERE store_code IN (SELECT store_code FROM custom_online_sale_bill_local);
-- 1299161
SELECT * FROM custom_online_sale_return_local WHERE mgclear_time = '';
-- 换货的退款不区分   退款订单数量识别不出来，合并发货的平台单A,B,C只退B，退款平台单号也是A,B,C
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	store_code AS "店铺编码",
	MAX(store_name_t) AS "店铺名称",
	SUM(return_goods_amt_t) AS "退款金额（元）",
	SUM(return_freight_amt_t) AS "退款运费金额（元）",
	SUM(return_goods_amt_t) + SUM(return_freight_amt_t) AS "退款金额（元）（包含退款运费）"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(return_freight_amt) AS return_freight_amt_t,
		SUM(return_goods_qty) AS return_goods_qty_t,
		SUM(return_goods_amt) AS return_goods_amt_t
	FROM custom_online_sale_return_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
)
GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(return_goods_amt_t) + SUM(return_freight_amt_t);

-- 账单店铺金额
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	store_code AS "店铺编码",
	MAX(store_name) AS "店铺名称",
	SUM(goods_amt) AS "退款金额（元）"
FROM custom_online_sale_bill_local
WHERE goods_amt < 0  AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(mgclear_time, 1, 4), store_code
ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt);

------------------------------------------------------------------
-- 5.2线上各店铺每年退款订单数量

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 5.3线上每年退款大于原销售的差异金额、订单数量

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 5.4线上每年各月退款金额
SELECT 
	SUBSTR(mgclear_time_t, 1, 4) AS "年份",
	SUBSTR(mgclear_time_t, 6, 2) AS "月份",
	SUM(return_goods_amt_t) AS "退款金额（元）",
	SUM(return_freight_amt_t) AS "退款运费金额（元）",
	SUM(return_goods_amt_t) + SUM(return_freight_amt_t) AS "退款金额（元）（包含退款运费）"
FROM (SELECT
		store_code,
		MAX(store_name) AS store_name_t,
		system_order_no,
		platform_order_no,
		MIN(mgclear_time) AS mgclear_time_t,
		MAX(return_freight_amt) AS return_freight_amt_t,
		SUM(return_goods_qty) AS return_goods_qty_t,
		SUM(return_goods_amt) AS return_goods_amt_t
	FROM custom_online_sale_return_local
	WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
	GROUP BY store_code, system_order_no, platform_order_no
)
GROUP BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 2)
ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 2);

-- 账单店铺金额
SELECT
	SUBSTR(mgclear_time, 1, 4) AS "年份",
	SUBSTR(mgclear_time, 6, 2) AS "月份",
	SUM(goods_amt) AS "退款金额（元）"
FROM custom_online_sale_bill_local
WHERE goods_amt < 0  AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2)
ORDER BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2);

------------------------------------------------------------------
-- 5.5线上每年各月退款订单数量

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 5.6线上每年订单退款金额分布

-- xxxxxxxxxxxxxxxxx   识别不出准确订单数量

------------------------------------------------------------------
-- 6.1线上每年净销售金额前100订单净销售金额

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 6.2线上每年净销售金额前100订单各省份净销售金额

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 6.3线上每年净销售金额前100订单各商品净销售金额

-- xxxxxxxxxxxxxxxxx

------------------------------------------------------------------
-- 7.1线上每年会员数量
-- 19年有会员系统，所以很多没有注册门店
SELECT brand, COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' GROUP BY brand ; 
SELECT SUBSTR(member_register_time, 1, 4), COUNT()  FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' AND brand = 'BES' GROUP BY SUBSTR(member_register_time, 1, 4); 

-- 账单没有
SELECT * FROM custom_online_sale_bill_local WHERE store_code IN (SELECT member_register_shop FROM dwd_basic_all_vip_info_dd);
-- 3345273
SELECT * FROM custom_online_sale_order_local WHERE store_code IN (SELECT member_register_shop FROM dwd_basic_all_vip_info_dd);
-- 30条会员数据没有注册时间
SELECT COUNT(DISTINCT t2.member_id) 
FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1
INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop
WHERE t2.member_register_time = '';

-- 每年底数量
SELECT
	COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2023' THEN t2.member_id END) AS count_2022,
	COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2024' THEN t2.member_id END) AS count_2023,
	COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2025' THEN t2.member_id END) AS count_2024,
	COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' THEN t2.member_id END) AS count_20250630
FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1
INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop
WHERE t2.member_register_time <> '';

------------------------------------------------------------------
-- 7.2线上每年活跃会员数量及其占比
-- 1363725条积分变动数据变动时间为空
SELECT COUNT() FROM dwd_basic_all_vip_point_dd WHERE change_time = '';
--
--SELECT t2.* 
--FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1
--INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop
--WHERE SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30';

-- 订单号关联不到积分数据
SELECT * FROM custom_online_sale_order_local WHERE platform_order_no IN (SELECT bill_no FROM dwd_basic_all_vip_point_dd WHERE bill_no <> '');
SELECT * FROM custom_online_sale_order_local WHERE system_order_no IN (SELECT bill_no FROM dwd_basic_all_vip_point_dd WHERE bill_no <> '');

SELECT * FROM custom_online_sale_order_local t1 INNER JOIN dwd_basic_all_vip_point_dd t2 ON t1.system_order_no = t2.bill_no;
SELECT * FROM custom_online_sale_order_local t1 INNER JOIN dwd_basic_all_vip_point_dd t2 ON t1.platform_order_no = t2.bill_no;


SELECT
	a.perYear "年份",
	a.member_count AS "活跃会员数量",
	ROUND(a.member_count / 
		CASE
			WHEN a.perYear = '2022' THEN b.count_2022
			WHEN a.perYear = '2023' THEN b.count_2023
			WHEN a.perYear = '2024' THEN b.count_2024
			WHEN a.perYear = '2025' THEN b.count_20250630
		END
	, 4) AS "活跃会员占比"	
FROM (SELECT SUBSTR(change_time, 1, 4) AS perYear, COUNT(DISTINCT member_id) AS member_count
FROM dwd_basic_all_vip_point_dd
WHERE member_id IN (SELECT DISTINCT member_id 
	FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1
	INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop
	WHERE t2.member_register_time <> '')
AND point_change > '0' AND change_time <> '' AND SUBSTR(change_time, 1, 10) >= '2022-01-01' AND SUBSTR(change_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(change_time, 1, 4)
) a, (
	SELECT
		COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2023' THEN t2.member_id END) AS count_2022,
		COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2024' THEN t2.member_id END) AS count_2023,
		COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2025' THEN t2.member_id END) AS count_2024,
		COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' THEN t2.member_id END) AS count_20250630
	FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1
	INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop
	WHERE t2.member_register_time <> ''
) b
ORDER BY a.perYear;

------------------------------------------------------------------
-- 7.3线上每年会员新增、注销数量


-- 每年新增
SELECT SUBSTR(t2.member_register_time, 1, 4), COUNT(DISTINCT t2.member_id) 
FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1
INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop
WHERE t2.member_register_time <> '' AND SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30'
GROUP BY SUBSTR(t2.member_register_time, 1, 4)
ORDER BY SUBSTR(t2.member_register_time, 1, 4);

-- 注销没数据

------------------------------------------------------------------
-- 7.4线上每年会员积分新增、消耗、清零数量
-- 积分类型
SELECT DISTINCT change_kind FROM dwd_basic_all_vip_point_dd;

------------------------------------------------------------------