128 lines
4.0 KiB
Python
128 lines
4.0 KiB
Python
POSTGRES_QUERY = """
|
|
WITH inventory_latest AS (
|
|
SELECT
|
|
t."统一规格编码",
|
|
t."仓库主键",
|
|
t."物理总库存"
|
|
FROM (
|
|
SELECT
|
|
f."统一规格编码",
|
|
f."仓库主键",
|
|
f."快照时间",
|
|
f."物理总库存",
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY f."统一规格编码", f."仓库主键"
|
|
ORDER BY f."快照时间" DESC
|
|
) AS rn
|
|
FROM analytics_layer.fact_inventory_snapshot f
|
|
WHERE f."数据来源系统" = '旺店通'
|
|
AND NULLIF(TRIM(f."统一规格编码"), '') IS NOT NULL
|
|
) t
|
|
WHERE t.rn = 1
|
|
),
|
|
|
|
inventory_summary AS (
|
|
SELECT
|
|
"统一规格编码",
|
|
SUM("物理总库存") AS "总库存"
|
|
FROM inventory_latest
|
|
GROUP BY "统一规格编码"
|
|
),
|
|
|
|
shop_listing_latest AS (
|
|
SELECT
|
|
t."统一规格编码",
|
|
t."店铺主键",
|
|
t."商品挂单量"
|
|
FROM (
|
|
SELECT
|
|
f."统一规格编码",
|
|
f."店铺主键",
|
|
f."快照时间",
|
|
f."商品挂单量",
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY f."统一规格编码", f."店铺主键"
|
|
ORDER BY f."快照时间" DESC
|
|
) AS rn
|
|
FROM analytics_layer.fact_shop_listing_snapshot f
|
|
WHERE f."数据来源系统" = '旺店通店铺'
|
|
AND NULLIF(TRIM(f."统一规格编码"), '') IS NOT NULL
|
|
) t
|
|
WHERE t.rn = 1
|
|
),
|
|
|
|
sales_summary AS (
|
|
SELECT
|
|
fs."统一规格编码",
|
|
SUM(
|
|
CASE
|
|
WHEN fs."发货时间" >= date_trunc('month', now())
|
|
AND fs."发货时间" < date_trunc('month', now()) + INTERVAL '1 month'
|
|
THEN fs."销售数量"
|
|
ELSE 0
|
|
END
|
|
) AS "本月销售数量",
|
|
SUM(
|
|
CASE
|
|
WHEN fs."发货时间" >= date_trunc('month', now()) - INTERVAL '1 month'
|
|
AND fs."发货时间" < date_trunc('month', now())
|
|
THEN fs."销售数量"
|
|
ELSE 0
|
|
END
|
|
) AS "上月销售数量",
|
|
SUM(
|
|
CASE
|
|
WHEN fs."发货时间" >= date_trunc('month', now()) - INTERVAL '2 month'
|
|
AND fs."发货时间" < date_trunc('month', now()) - INTERVAL '1 month'
|
|
THEN fs."销售数量"
|
|
ELSE 0
|
|
END
|
|
) AS "上上月销售数量"
|
|
FROM analytics_layer.fact_sales fs
|
|
WHERE NULLIF(TRIM(fs."统一规格编码"), '') IS NOT NULL
|
|
AND fs."发货时间" >= date_trunc('month', now()) - INTERVAL '2 month'
|
|
AND fs."发货时间" < date_trunc('month', now()) + INTERVAL '1 month'
|
|
GROUP BY fs."统一规格编码"
|
|
),
|
|
|
|
product_dim AS (
|
|
SELECT DISTINCT ON ("统一规格编码")
|
|
"统一规格编码",
|
|
"品牌名称",
|
|
"货品简称",
|
|
"一级分类",
|
|
"商品名称",
|
|
"条形码",
|
|
"零售价"
|
|
FROM analytics_layer.dim_product
|
|
WHERE NULLIF(TRIM("统一规格编码"), '') IS NOT NULL
|
|
ORDER BY "统一规格编码"
|
|
)
|
|
|
|
SELECT
|
|
sl."统一规格编码",
|
|
pd."品牌名称",
|
|
pd."货品简称",
|
|
pd."一级分类",
|
|
pd."商品名称",
|
|
pd."条形码",
|
|
pd."零售价",
|
|
ds."店铺名称",
|
|
COALESCE(sl."商品挂单量", 0) AS "店铺挂单量",
|
|
COALESCE(inv."总库存", 0) AS "总库存",
|
|
COALESCE(ss."本月销售数量", 0) AS "本月销售数量",
|
|
COALESCE(ss."上月销售数量", 0) AS "上月销售数量",
|
|
COALESCE(ss."上上月销售数量", 0) AS "上上月销售数量"
|
|
FROM shop_listing_latest sl
|
|
LEFT JOIN inventory_summary inv
|
|
ON sl."统一规格编码" = inv."统一规格编码"
|
|
LEFT JOIN analytics_layer.dim_shop ds
|
|
ON sl."店铺主键" = ds."店铺主键"
|
|
LEFT JOIN sales_summary ss
|
|
ON sl."统一规格编码" = ss."统一规格编码"
|
|
LEFT JOIN product_dim pd
|
|
ON sl."统一规格编码" = pd."统一规格编码"
|
|
ORDER BY sl."统一规格编码", sl."店铺主键"
|
|
"""
|
|
|