调整 大眼睛EM的统计

添加 羽心堂分销
This commit is contained in:
2026-05-07 17:55:42 +08:00
parent 6f38209efe
commit 8a6a0e3858
3 changed files with 107 additions and 85 deletions
+89 -71
View File
@@ -46,6 +46,7 @@ WITH base_data AS (
f.店铺主键,
s.店铺名称 AS 原始店铺名称,
p.品牌名称,
p.商品名称,
f.业务模式,
f.实付分摊金额
FROM analytics_layer.fact_sales f
@@ -64,23 +65,30 @@ brand_split AS (
原始店铺名称,
业务模式,
CASE
WHEN COALESCE(原始店铺名称, '') LIKE '%%羽心堂分销%%'
THEN '羽心堂分销'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '羽心堂'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '羽心堂'
THEN 原始店铺名称 || '_羽心堂'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '春回盏'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '春回盏'
THEN 原始店铺名称 || '_春回盏'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'Mama Mujer'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
THEN 原始店铺名称 || '_Mama Mujer'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'ERBA MIGINA'
WHEN 店铺主键 IN (1,28,29)
AND (
COALESCE(品牌名称, '') LIKE 'ERBA MIGINA'
OR COALESCE(商品名称, '') ILIKE '%%ERBA MIGINA%%'
OR COALESCE(商品名称, '') ~* '(^|[^A-Za-z])EM([^A-Za-z]|$)'
)
THEN 原始店铺名称 || '_ERBA MIGINA'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'BROKEN ZOO'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE 'BROKEN ZOO'
THEN 原始店铺名称 || '_BROKEN ZOO'
WHEN 店铺主键 IN (1,28,29)
THEN 原始店铺名称 || '_其他'
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE '羽心堂'
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE '羽心堂'
THEN 原始店铺名称 || '_羽心堂'
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE 'Mama Mujer'
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
THEN 原始店铺名称 || '_Mama Mujer'
WHEN 店铺主键 IN (3,9)
THEN 原始店铺名称 || '_其他'
@@ -103,39 +111,45 @@ shop_brand_detail AS (
SUM(实付分摊金额) AS 总销售额
FROM brand_split
GROUP BY 1,2,3
),
union_data AS (
SELECT
统计日期,
店铺名称,
总销售额
FROM shop_brand_detail
WHERE NOT (
店铺主键 IN (1,9,28,29)
AND 店铺名称 LIKE '%%_其他'
)
UNION ALL
SELECT
统计日期,
原始店铺名称 AS 店铺名称,
SUM(实付分摊金额) AS 总销售额
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
UNION ALL
SELECT
统计日期,
原始店铺名称 || '_权益金' AS 店铺名称,
SUM(实付分摊金额) AS 总销售额
FROM base_data
WHERE 店铺主键 IN (5,11,14,22,26)
AND 业务模式 = '充值购物金'
GROUP BY 1,2
)
SELECT
统计日期,
店铺名称,
总销售额
FROM shop_brand_detail
WHERE NOT (
店铺主键 IN (1,9,28,29)
AND 店铺名称 LIKE '%%_其他'
)
UNION ALL
-- 店铺合计(使用 dim_shop 店铺名)
SELECT
统计日期,
原始店铺名称 AS 店铺名称,
SUM(实付分摊金额)
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
UNION ALL
-- 权益金(充值购物金单独统计)
SELECT
统计日期,
原始店铺名称 || '_权益金' AS 店铺名称,
SUM(实付分摊金额) AS 总销售额
FROM base_data
WHERE 店铺主键 IN (5,11,14,22,26)
AND 业务模式 = '充值购物金'
SUM(总销售额) AS 总销售额
FROM union_data
GROUP BY 1,2
ORDER BY 统计日期 DESC, 总销售额 DESC;
@@ -192,6 +206,7 @@ base_data AS (
f.平台订单号,
s.店铺名称 AS 原始店铺名称,
p.品牌名称,
p.商品名称,
f.退款金额
FROM analytics_layer.fact_returns f
LEFT JOIN analytics_layer.dim_shop s
@@ -216,22 +231,27 @@ brand_split AS (
原始店铺名称,
CASE
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '羽心堂'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '羽心堂'
THEN 原始店铺名称 || '_羽心堂'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '春回盏'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '春回盏'
THEN 原始店铺名称 || '_春回盏'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'Mama Mujer'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
THEN 原始店铺名称 || '_Mama Mujer'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'ERBA MIGINA'
WHEN 店铺主键 IN (1,28,29)
AND (
COALESCE(品牌名称, '') LIKE 'ERBA MIGINA'
OR COALESCE(商品名称, '') ILIKE '%%ERBA MIGINA%%'
OR COALESCE(商品名称, '') ~* '(^|[^A-Za-z])EM([^A-Za-z]|$)'
)
THEN 原始店铺名称 || '_ERBA MIGINA'
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'BROKEN ZOO'
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE 'BROKEN ZOO'
THEN 原始店铺名称 || '_BROKEN ZOO'
WHEN 店铺主键 IN (1,28,29)
THEN 原始店铺名称 || '_其他'
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE '羽心堂'
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE '羽心堂'
THEN 原始店铺名称 || '_羽心堂'
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE 'Mama Mujer'
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
THEN 原始店铺名称 || '_Mama Mujer'
WHEN 店铺主键 IN (3,9)
THEN 原始店铺名称 || '_其他'
@@ -255,59 +275,57 @@ shop_brand_detail AS (
GROUP BY 1,2,3
),
all_amount AS (
SELECT
union_data AS (
SELECT
统计日期,
店铺名称,
总退款金额 AS 金额
FROM shop_brand_detail
WHERE NOT (
总退款金额
FROM shop_brand_detail
WHERE NOT (
店铺主键 IN (1,9,28,29)
AND 店铺名称 LIKE '%%_其他'
)
)
UNION ALL
UNION ALL
-- 店铺合计
SELECT
SELECT
统计日期,
原始店铺名称 AS 店铺名称,
SUM(退款金额) AS 金额
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
SUM(退款金额) AS 总退款金额
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
UNION ALL
UNION ALL
-- 权益金退款
SELECT
SELECT
r.统计日期,
r.原始店铺名称 || '_权益金' AS 店铺名称,
SUM(r.退款金额) AS 金额
FROM base_data r
JOIN recharge_orders ro
SUM(r.退款金额) AS 总退款金额
FROM base_data r
JOIN recharge_orders ro
ON r.平台订单号 = ro.平台订单号
AND r.店铺主键 = ro.店铺主键
WHERE r.店铺主键 IN (5,11,14,22,26)
GROUP BY 1,2
WHERE r.店铺主键 IN (5,11,14,22,26)
GROUP BY 1,2
UNION ALL
UNION ALL
SELECT
SELECT
mrs.统计日期,
COALESCE(s.店铺名称, '未知店铺') AS 店铺名称,
SUM(mrs.补充退款金额) AS 金额
FROM missing_return_sales mrs
LEFT JOIN analytics_layer.dim_shop s
SUM(mrs.补充退款金额) AS 总退款金额
FROM missing_return_sales mrs
LEFT JOIN analytics_layer.dim_shop s
ON mrs.店铺主键 = s.店铺主键
GROUP BY 1,2
GROUP BY 1,2
)
SELECT
统计日期,
店铺名称,
SUM(金额) AS 总退款金额
FROM all_amount
SUM(总退款金额) AS 总退款金额
FROM union_data
GROUP BY
统计日期,
店铺名称
+4
View File
@@ -34,6 +34,7 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--table-map-file", default="", help="可选,项目到表名的映射 JSON 文件路径")
parser.add_argument("--dry-run", action="store_true", help="只输出将要更新的内容,不调用飞书写接口")
parser.add_argument("--skip-missing-tables", action="store_true", help="找不到对应月份的飞书表时跳过")
parser.add_argument("--no-notify", action="store_true", help="只写入多维表格,不推送飞书群通知")
return parser.parse_args()
@@ -61,6 +62,9 @@ def main() -> None:
)
for stat_date in iter_dates(start_date, end_date):
run_daily_sync_for_date(context, stat_date)
if args.no_notify:
log_step("已跳过飞书群通知")
else:
send_sync_notification(context, start_date, end_date)
log_step("流水线完成")
Binary file not shown.