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