给free report页面增加PRICE

This commit is contained in:
2026-04-28 17:21:34 +08:00
parent 16327a9a32
commit 3b08537f5e

View File

@@ -28,7 +28,10 @@
-- DATE_KEY DATE,
-- PLATFORM STRING,
-- STORE_NAME STRING,
-- STORE_TYPE STRING)
-- STORE_TYPE STRING,
-- PRICE STRING,
-- DIGITAL_SPREAD_RATE STRING,
-- WEIGHTED_SPREAD_RATE STRING
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_unionall_sales_mapping_niad';
-- -- 上面是生产环境location下面是测试环境location
@@ -44,8 +47,6 @@
-- 修改日期2026-04-02
-- ****************************************************
INSERT OVERWRITE DM.DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD
WITH
-- CTE 1获取NIAD市场的产品编码集合
@@ -55,6 +56,23 @@ niad_pack_cods AS (
FROM DM.DM_TF_EXT_UNIONALL_MARKET_SALES
WHERE MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market'
AND DATA_SOURCE IN ('EC(Monthly)', 'Retail(Quarterly)')
),
-- CTE 2从KPI宽转长表中横向取出三个零售铺货率/价格指标
-- 来源Retail pack粒度数据EC行join后为NULL属正常
-- 关联键pack_code = PACK_COD, geo_key = AUDIT_COD, YYYYMM = YYYYMM
kpi_pivot AS (
SELECT
pack_code,
YYYYMM,
geo_key,
MAX(CASE WHEN KPI_name = 'pack_price' THEN kpi_val END) AS PRICE,
MAX(CASE WHEN KPI_name = 'digital_spread_rate' THEN kpi_val END) AS DIGITAL_SPREAD_RATE,
MAX(CASE WHEN KPI_name = 'weighted_spread_rate' THEN kpi_val END) AS WEIGHTED_SPREAD_RATE
FROM dm.dm_zk_retail_sales_kpi
WHERE KPI_name IN ('pack_price', 'digital_spread_rate', 'weighted_spread_rate')
AND ta = 'DM'
GROUP BY pack_code, YYYYMM, geo_key
)
-- 主查询:提取所有关联市场的完整销售数据
@@ -101,12 +119,23 @@ SELECT /*+ BROADCAST(m) */
CONCAT(t.AUDIT_COD, t.DATA_SOURCE) AS AUDIT_SOURCE,
CONCAT(t.MARKET, t.DATA_SOURCE) AS MARKET_SOURCE,
CONCAT(t.MARKET,t.CLASS, t.DATA_SOURCE) AS CLASS_SOURCE,
-- 时间维度:优化为 TO_DATE 直接解析 yyyyMM 格式,避免字符串拼接
TO_DATE(t.YYYYMM, 'yyyyMM') AS DATE_KEY,
PLATFORM_TYPE,
STORE_NAME,
STORE_TYPE
STORE_TYPE,
-- 零售铺货率 & 价格(仅 Retail 行有值EC 行为 NULL
CAST(kpi.PRICE AS string) AS PRICE,
CAST(round(kpi.DIGITAL_SPREAD_RATE,2) AS string)||'%' AS DIGITAL_SPREAD_RATE,
CAST(round(kpi.WEIGHTED_SPREAD_RATE,2) AS string)||'%' AS WEIGHTED_SPREAD_RATE
FROM DM.DM_TF_EXT_UNIONALL_MARKET_SALES t
LEFT SEMI JOIN niad_pack_cods m ON t.PACK_COD = m.PACK_COD
LEFT JOIN kpi_pivot kpi
ON kpi.pack_code = t.PACK_COD
AND kpi.YYYYMM = t.YYYYMM
AND kpi.geo_key = t.AUDIT_COD
AND t.DATA_SOURCE = 'Retail(Quarterly)'
WHERE t.DATA_SOURCE IN ('EC(Monthly)', 'Retail(Quarterly)')