调整查询sql
This commit is contained in:
+54
-21
@@ -40,7 +40,6 @@ METRIC_CONFIGS = {
|
||||
field_suffix="总销售额",
|
||||
sql_template="""
|
||||
SET TIMEZONE = 'Asia/Shanghai';
|
||||
|
||||
WITH base_data AS (
|
||||
SELECT
|
||||
f.支付时间::DATE AS 统计日期,
|
||||
@@ -48,7 +47,7 @@ WITH base_data AS (
|
||||
s.店铺名称 AS 原始店铺名称,
|
||||
p.品牌名称,
|
||||
f.业务模式,
|
||||
f.实付分摊金额 AS 指标金额
|
||||
f.实付分摊金额
|
||||
FROM analytics_layer.fact_sales f
|
||||
LEFT JOIN analytics_layer.dim_shop s
|
||||
ON f.店铺主键 = s.店铺主键
|
||||
@@ -65,6 +64,7 @@ brand_split AS (
|
||||
原始店铺名称,
|
||||
业务模式,
|
||||
CASE
|
||||
|
||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '羽心堂'
|
||||
THEN 原始店铺名称 || '_羽心堂'
|
||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '春回盏'
|
||||
@@ -77,32 +77,38 @@ brand_split AS (
|
||||
THEN 原始店铺名称 || '_BROKEN ZOO'
|
||||
WHEN 店铺主键 IN (1,28,29)
|
||||
THEN 原始店铺名称 || '_其他'
|
||||
|
||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE '羽心堂'
|
||||
THEN 原始店铺名称 || '_羽心堂'
|
||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE 'Mama Mujer'
|
||||
THEN 原始店铺名称 || '_Mama Mujer'
|
||||
WHEN 店铺主键 IN (3,9)
|
||||
THEN 原始店铺名称 || '_其他'
|
||||
|
||||
WHEN 店铺主键 IS NULL OR 原始店铺名称 IS NULL
|
||||
THEN '分销/SEEDING'
|
||||
|
||||
ELSE 原始店铺名称
|
||||
|
||||
END AS 店铺名称,
|
||||
指标金额
|
||||
实付分摊金额
|
||||
FROM base_data
|
||||
),
|
||||
|
||||
shop_brand_detail AS (
|
||||
SELECT
|
||||
统计日期,
|
||||
店铺主键,
|
||||
店铺名称,
|
||||
SUM(指标金额) AS 指标值
|
||||
SUM(实付分摊金额) AS 总销售额
|
||||
FROM brand_split
|
||||
GROUP BY 1,2,3
|
||||
)
|
||||
|
||||
SELECT
|
||||
统计日期,
|
||||
店铺名称,
|
||||
指标值
|
||||
总销售额
|
||||
FROM shop_brand_detail
|
||||
WHERE NOT (
|
||||
店铺主键 IN (1,9,28,29)
|
||||
@@ -111,29 +117,28 @@ WHERE NOT (
|
||||
|
||||
UNION ALL
|
||||
|
||||
-- 店铺合计(使用 dim_shop 店铺名)
|
||||
SELECT
|
||||
统计日期,
|
||||
原始店铺名称 AS 店铺名称,
|
||||
SUM(指标金额)
|
||||
SUM(实付分摊金额)
|
||||
FROM base_data
|
||||
WHERE 店铺主键 IN (1,28,29,3)
|
||||
GROUP BY 1,2
|
||||
|
||||
UNION ALL
|
||||
|
||||
-- 权益金(充值购物金单独统计)
|
||||
SELECT
|
||||
统计日期,
|
||||
CASE
|
||||
WHEN 业务模式 IN ('三方结算','三方分销')
|
||||
THEN 原始店铺名称 || '_三方'
|
||||
ELSE 原始店铺名称 || '_自营'
|
||||
END AS 店铺名称,
|
||||
SUM(指标金额)
|
||||
原始店铺名称 || '_权益金' AS 店铺名称,
|
||||
SUM(实付分摊金额) AS 总销售额
|
||||
FROM base_data
|
||||
WHERE 店铺主键 = 1
|
||||
WHERE 店铺主键 IN (5,11,14,22,26)
|
||||
AND 业务模式 = '充值购物金'
|
||||
GROUP BY 1,2
|
||||
|
||||
ORDER BY 统计日期 DESC, 指标值 DESC;
|
||||
ORDER BY 统计日期 DESC, 总销售额 DESC;
|
||||
""",
|
||||
),
|
||||
"refund": MetricConfig(
|
||||
@@ -142,14 +147,14 @@ ORDER BY 统计日期 DESC, 指标值 DESC;
|
||||
field_suffix="退款额",
|
||||
sql_template="""
|
||||
SET TIMEZONE = 'Asia/Shanghai';
|
||||
|
||||
WITH base_data AS (
|
||||
SELECT
|
||||
f.完结时间::DATE AS 统计日期,
|
||||
f.店铺主键,
|
||||
f.平台订单号,
|
||||
s.店铺名称 AS 原始店铺名称,
|
||||
p.品牌名称,
|
||||
f.退款金额 AS 指标金额
|
||||
f.退款金额
|
||||
FROM analytics_layer.fact_returns f
|
||||
LEFT JOIN analytics_layer.dim_shop s
|
||||
ON f.店铺主键 = s.店铺主键
|
||||
@@ -159,12 +164,20 @@ WITH base_data AS (
|
||||
WHERE f.完结时间 >= %(start_ts)s
|
||||
AND f.完结时间 < %(end_ts_exclusive)s
|
||||
),
|
||||
|
||||
recharge_orders AS (
|
||||
SELECT DISTINCT 平台订单号, 店铺主键
|
||||
FROM analytics_layer.fact_sales
|
||||
WHERE 业务模式 = '充值购物金'
|
||||
),
|
||||
|
||||
brand_split AS (
|
||||
SELECT
|
||||
统计日期,
|
||||
店铺主键,
|
||||
原始店铺名称,
|
||||
CASE
|
||||
|
||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '羽心堂'
|
||||
THEN 原始店铺名称 || '_羽心堂'
|
||||
WHEN 店铺主键 IN (1,28,29) AND 品牌名称 LIKE '春回盏'
|
||||
@@ -177,32 +190,37 @@ brand_split AS (
|
||||
THEN 原始店铺名称 || '_BROKEN ZOO'
|
||||
WHEN 店铺主键 IN (1,28,29)
|
||||
THEN 原始店铺名称 || '_其他'
|
||||
|
||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE '羽心堂'
|
||||
THEN 原始店铺名称 || '_羽心堂'
|
||||
WHEN 店铺主键 IN (3,9) AND 品牌名称 LIKE 'Mama Mujer'
|
||||
THEN 原始店铺名称 || '_Mama Mujer'
|
||||
WHEN 店铺主键 IN (3,9)
|
||||
THEN 原始店铺名称 || '_其他'
|
||||
|
||||
WHEN 店铺主键 IS NULL OR 原始店铺名称 IS NULL
|
||||
THEN '分销/SEEDING'
|
||||
|
||||
ELSE 原始店铺名称
|
||||
END AS 店铺名称,
|
||||
指标金额
|
||||
退款金额
|
||||
FROM base_data
|
||||
),
|
||||
|
||||
shop_brand_detail AS (
|
||||
SELECT
|
||||
统计日期,
|
||||
店铺主键,
|
||||
店铺名称,
|
||||
SUM(指标金额) AS 指标值
|
||||
SUM(退款金额) AS 总退款金额
|
||||
FROM brand_split
|
||||
GROUP BY 1,2,3
|
||||
)
|
||||
|
||||
SELECT
|
||||
统计日期,
|
||||
店铺名称,
|
||||
指标值
|
||||
总退款金额
|
||||
FROM shop_brand_detail
|
||||
WHERE NOT (
|
||||
店铺主键 IN (1,9,28,29)
|
||||
@@ -211,15 +229,30 @@ WHERE NOT (
|
||||
|
||||
UNION ALL
|
||||
|
||||
-- 店铺合计
|
||||
SELECT
|
||||
统计日期,
|
||||
原始店铺名称 AS 店铺名称,
|
||||
SUM(指标金额)
|
||||
SUM(退款金额) AS 总退款金额
|
||||
FROM base_data
|
||||
WHERE 店铺主键 IN (1,28,29,3)
|
||||
GROUP BY 1,2
|
||||
|
||||
ORDER BY 统计日期 DESC, 指标值 DESC;
|
||||
UNION ALL
|
||||
|
||||
-- 权益金退款
|
||||
SELECT
|
||||
r.统计日期,
|
||||
r.原始店铺名称 || '_权益金' AS 店铺名称,
|
||||
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
|
||||
|
||||
ORDER BY 统计日期 DESC, 总退款金额 DESC;
|
||||
""",
|
||||
),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user