调整 大眼睛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
+46 -28
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,8 +111,8 @@ shop_brand_detail AS (
SUM(实付分摊金额) AS 总销售额
FROM brand_split
GROUP BY 1,2,3
)
),
union_data AS (
SELECT
统计日期,
店铺名称,
@@ -117,18 +125,16 @@ WHERE NOT (
UNION ALL
-- 店铺合计(使用 dim_shop 店铺名)
SELECT
统计日期,
原始店铺名称 AS 店铺名称,
SUM(实付分摊金额)
SUM(实付分摊金额) AS 总销售额
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
UNION ALL
-- 权益金(充值购物金单独统计)
SELECT
统计日期,
原始店铺名称 || '_权益金' AS 店铺名称,
@@ -137,6 +143,14 @@ FROM base_data
WHERE 店铺主键 IN (5,11,14,22,26)
AND 业务模式 = '充值购物金'
GROUP BY 1,2
)
SELECT
统计日期,
店铺名称,
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,11 +275,11 @@ shop_brand_detail AS (
GROUP BY 1,2,3
),
all_amount AS (
union_data AS (
SELECT
统计日期,
店铺名称,
总退款金额 AS 金额
总退款金额
FROM shop_brand_detail
WHERE NOT (
店铺主键 IN (1,9,28,29)
@@ -268,22 +288,20 @@ WHERE NOT (
UNION ALL
-- 店铺合计
SELECT
统计日期,
原始店铺名称 AS 店铺名称,
SUM(退款金额) AS 金额
SUM(退款金额) AS 总退款金额
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
UNION ALL
-- 权益金退款
SELECT
r.统计日期,
r.原始店铺名称 || '_权益金' AS 店铺名称,
SUM(r.退款金额) AS 金额
SUM(r.退款金额) AS 总退款金额
FROM base_data r
JOIN recharge_orders ro
ON r.平台订单号 = ro.平台订单号
@@ -296,7 +314,7 @@ UNION ALL
SELECT
mrs.统计日期,
COALESCE(s.店铺名称, '未知店铺') AS 店铺名称,
SUM(mrs.补充退款金额) AS 金额
SUM(mrs.补充退款金额) AS 总退款金额
FROM missing_return_sales mrs
LEFT JOIN analytics_layer.dim_shop s
ON mrs.店铺主键 = s.店铺主键
@@ -306,8 +324,8 @@ 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.