调整 大眼睛EM的统计
添加 羽心堂分销
This commit is contained in:
+102
-84
@@ -46,6 +46,7 @@ WITH base_data AS (
|
|||||||
f.店铺主键,
|
f.店铺主键,
|
||||||
s.店铺名称 AS 原始店铺名称,
|
s.店铺名称 AS 原始店铺名称,
|
||||||
p.品牌名称,
|
p.品牌名称,
|
||||||
|
p.商品名称,
|
||||||
f.业务模式,
|
f.业务模式,
|
||||||
f.实付分摊金额
|
f.实付分摊金额
|
||||||
FROM analytics_layer.fact_sales f
|
FROM analytics_layer.fact_sales f
|
||||||
@@ -64,23 +65,30 @@ brand_split AS (
|
|||||||
原始店铺名称,
|
原始店铺名称,
|
||||||
业务模式,
|
业务模式,
|
||||||
CASE
|
CASE
|
||||||
|
WHEN COALESCE(原始店铺名称, '') LIKE '%%羽心堂分销%%'
|
||||||
|
THEN '羽心堂分销'
|
||||||
|
|
||||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '羽心堂'
|
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '羽心堂'
|
||||||
THEN 原始店铺名称 || '_羽心堂'
|
THEN 原始店铺名称 || '_羽心堂'
|
||||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '春回盏'
|
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '春回盏'
|
||||||
THEN 原始店铺名称 || '_春回盏'
|
THEN 原始店铺名称 || '_春回盏'
|
||||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'Mama Mujer'
|
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
|
||||||
THEN 原始店铺名称 || '_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'
|
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'
|
THEN 原始店铺名称 || '_BROKEN ZOO'
|
||||||
WHEN 店铺主键 IN (1,28,29)
|
WHEN 店铺主键 IN (1,28,29)
|
||||||
THEN 原始店铺名称 || '_其他'
|
THEN 原始店铺名称 || '_其他'
|
||||||
|
|
||||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE '羽心堂'
|
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE '羽心堂'
|
||||||
THEN 原始店铺名称 || '_羽心堂'
|
THEN 原始店铺名称 || '_羽心堂'
|
||||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE 'Mama Mujer'
|
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
|
||||||
THEN 原始店铺名称 || '_Mama Mujer'
|
THEN 原始店铺名称 || '_Mama Mujer'
|
||||||
WHEN 店铺主键 IN (3,9)
|
WHEN 店铺主键 IN (3,9)
|
||||||
THEN 原始店铺名称 || '_其他'
|
THEN 原始店铺名称 || '_其他'
|
||||||
@@ -103,39 +111,45 @@ shop_brand_detail AS (
|
|||||||
SUM(实付分摊金额) AS 总销售额
|
SUM(实付分摊金额) AS 总销售额
|
||||||
FROM brand_split
|
FROM brand_split
|
||||||
GROUP BY 1,2,3
|
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
|
SELECT
|
||||||
统计日期,
|
统计日期,
|
||||||
店铺名称,
|
店铺名称,
|
||||||
总销售额
|
SUM(总销售额) AS 总销售额
|
||||||
FROM shop_brand_detail
|
FROM union_data
|
||||||
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 业务模式 = '充值购物金'
|
|
||||||
GROUP BY 1,2
|
GROUP BY 1,2
|
||||||
|
|
||||||
ORDER BY 统计日期 DESC, 总销售额 DESC;
|
ORDER BY 统计日期 DESC, 总销售额 DESC;
|
||||||
@@ -192,6 +206,7 @@ base_data AS (
|
|||||||
f.平台订单号,
|
f.平台订单号,
|
||||||
s.店铺名称 AS 原始店铺名称,
|
s.店铺名称 AS 原始店铺名称,
|
||||||
p.品牌名称,
|
p.品牌名称,
|
||||||
|
p.商品名称,
|
||||||
f.退款金额
|
f.退款金额
|
||||||
FROM analytics_layer.fact_returns f
|
FROM analytics_layer.fact_returns f
|
||||||
LEFT JOIN analytics_layer.dim_shop s
|
LEFT JOIN analytics_layer.dim_shop s
|
||||||
@@ -216,22 +231,27 @@ brand_split AS (
|
|||||||
原始店铺名称,
|
原始店铺名称,
|
||||||
CASE
|
CASE
|
||||||
|
|
||||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '羽心堂'
|
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '羽心堂'
|
||||||
THEN 原始店铺名称 || '_羽心堂'
|
THEN 原始店铺名称 || '_羽心堂'
|
||||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '春回盏'
|
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE '春回盏'
|
||||||
THEN 原始店铺名称 || '_春回盏'
|
THEN 原始店铺名称 || '_春回盏'
|
||||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE 'Mama Mujer'
|
WHEN 店铺主键 IN (1,28,29) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
|
||||||
THEN 原始店铺名称 || '_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'
|
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'
|
THEN 原始店铺名称 || '_BROKEN ZOO'
|
||||||
WHEN 店铺主键 IN (1,28,29)
|
WHEN 店铺主键 IN (1,28,29)
|
||||||
THEN 原始店铺名称 || '_其他'
|
THEN 原始店铺名称 || '_其他'
|
||||||
|
|
||||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE '羽心堂'
|
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE '羽心堂'
|
||||||
THEN 原始店铺名称 || '_羽心堂'
|
THEN 原始店铺名称 || '_羽心堂'
|
||||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE 'Mama Mujer'
|
WHEN 店铺主键 IN (3,9) AND COALESCE(品牌名称, '') LIKE 'Mama Mujer'
|
||||||
THEN 原始店铺名称 || '_Mama Mujer'
|
THEN 原始店铺名称 || '_Mama Mujer'
|
||||||
WHEN 店铺主键 IN (3,9)
|
WHEN 店铺主键 IN (3,9)
|
||||||
THEN 原始店铺名称 || '_其他'
|
THEN 原始店铺名称 || '_其他'
|
||||||
@@ -255,59 +275,57 @@ shop_brand_detail AS (
|
|||||||
GROUP BY 1,2,3
|
GROUP BY 1,2,3
|
||||||
),
|
),
|
||||||
|
|
||||||
all_amount AS (
|
union_data AS (
|
||||||
SELECT
|
SELECT
|
||||||
统计日期,
|
统计日期,
|
||||||
店铺名称,
|
店铺名称,
|
||||||
总退款金额 AS 金额
|
总退款金额
|
||||||
FROM shop_brand_detail
|
FROM shop_brand_detail
|
||||||
WHERE NOT (
|
WHERE NOT (
|
||||||
店铺主键 IN (1,9,28,29)
|
店铺主键 IN (1,9,28,29)
|
||||||
AND 店铺名称 LIKE '%%_其他'
|
AND 店铺名称 LIKE '%%_其他'
|
||||||
)
|
)
|
||||||
|
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
-- 店铺合计
|
SELECT
|
||||||
SELECT
|
统计日期,
|
||||||
统计日期,
|
原始店铺名称 AS 店铺名称,
|
||||||
原始店铺名称 AS 店铺名称,
|
SUM(退款金额) AS 总退款金额
|
||||||
SUM(退款金额) AS 金额
|
FROM base_data
|
||||||
FROM base_data
|
WHERE 店铺主键 IN (1,28,29,3)
|
||||||
WHERE 店铺主键 IN (1,28,29,3)
|
GROUP BY 1,2
|
||||||
GROUP BY 1,2
|
|
||||||
|
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
-- 权益金退款
|
SELECT
|
||||||
SELECT
|
r.统计日期,
|
||||||
r.统计日期,
|
r.原始店铺名称 || '_权益金' AS 店铺名称,
|
||||||
r.原始店铺名称 || '_权益金' AS 店铺名称,
|
SUM(r.退款金额) AS 总退款金额
|
||||||
SUM(r.退款金额) AS 金额
|
FROM base_data r
|
||||||
FROM base_data r
|
JOIN recharge_orders ro
|
||||||
JOIN recharge_orders ro
|
ON r.平台订单号 = ro.平台订单号
|
||||||
ON r.平台订单号 = ro.平台订单号
|
AND r.店铺主键 = ro.店铺主键
|
||||||
AND r.店铺主键 = ro.店铺主键
|
WHERE r.店铺主键 IN (5,11,14,22,26)
|
||||||
WHERE r.店铺主键 IN (5,11,14,22,26)
|
GROUP BY 1,2
|
||||||
GROUP BY 1,2
|
|
||||||
|
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
mrs.统计日期,
|
mrs.统计日期,
|
||||||
COALESCE(s.店铺名称, '未知店铺') AS 店铺名称,
|
COALESCE(s.店铺名称, '未知店铺') AS 店铺名称,
|
||||||
SUM(mrs.补充退款金额) AS 金额
|
SUM(mrs.补充退款金额) AS 总退款金额
|
||||||
FROM missing_return_sales mrs
|
FROM missing_return_sales mrs
|
||||||
LEFT JOIN analytics_layer.dim_shop s
|
LEFT JOIN analytics_layer.dim_shop s
|
||||||
ON mrs.店铺主键 = s.店铺主键
|
ON mrs.店铺主键 = s.店铺主键
|
||||||
GROUP BY 1,2
|
GROUP BY 1,2
|
||||||
)
|
)
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
统计日期,
|
统计日期,
|
||||||
店铺名称,
|
店铺名称,
|
||||||
SUM(金额) AS 总退款金额
|
SUM(总退款金额) AS 总退款金额
|
||||||
FROM all_amount
|
FROM union_data
|
||||||
GROUP BY
|
GROUP BY
|
||||||
统计日期,
|
统计日期,
|
||||||
店铺名称
|
店铺名称
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ def parse_args() -> argparse.Namespace:
|
|||||||
parser.add_argument("--table-map-file", default="", help="可选,项目到表名的映射 JSON 文件路径")
|
parser.add_argument("--table-map-file", default="", help="可选,项目到表名的映射 JSON 文件路径")
|
||||||
parser.add_argument("--dry-run", action="store_true", help="只输出将要更新的内容,不调用飞书写接口")
|
parser.add_argument("--dry-run", action="store_true", help="只输出将要更新的内容,不调用飞书写接口")
|
||||||
parser.add_argument("--skip-missing-tables", 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()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
@@ -61,7 +62,10 @@ def main() -> None:
|
|||||||
)
|
)
|
||||||
for stat_date in iter_dates(start_date, end_date):
|
for stat_date in iter_dates(start_date, end_date):
|
||||||
run_daily_sync_for_date(context, stat_date)
|
run_daily_sync_for_date(context, stat_date)
|
||||||
send_sync_notification(context, start_date, end_date)
|
if args.no_notify:
|
||||||
|
log_step("已跳过飞书群通知")
|
||||||
|
else:
|
||||||
|
send_sync_notification(context, start_date, end_date)
|
||||||
log_step("流水线完成")
|
log_step("流水线完成")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
Reference in New Issue
Block a user