48 lines
2.5 KiB
SQL
48 lines
2.5 KiB
SQL
-- 补充回填:v_store_monthly_followup 中值为 NULL 的门店
|
|
-- 从 v_store_action_priority_deep_april 和 v_store_risk_rating 补充
|
|
UPDATE analytics.store_task t
|
|
SET
|
|
current_value = src.current_val::numeric,
|
|
benchmark_value = src.benchmark_val::numeric,
|
|
target_value = src.target_val::numeric
|
|
FROM (
|
|
SELECT
|
|
t.task_id,
|
|
CASE t.problem_indicator
|
|
WHEN '异常率' THEN COALESCE(f.actual_anomaly_rate, r.anomaly_rate_pct)::text
|
|
WHEN '优惠率' THEN COALESCE(f.actual_discount_rate, v.discount_rate_pct)::text
|
|
WHEN '理论毛利率' THEN COALESCE(f.actual_margin_rate, v.theoretical_margin_pct)::text
|
|
WHEN '会员复购率' THEN COALESCE(f.actual_repeat_rate, v.repeat_rate_pct)::text
|
|
WHEN '实际成本率' THEN v.actual_food_cost_rate_pct::text
|
|
WHEN '饮品搭售率' THEN v.noodle_drink_attach_pct::text
|
|
ELSE NULL
|
|
END AS current_val,
|
|
CASE t.problem_indicator
|
|
WHEN '异常率' THEN COALESCE(f.baseline_anomaly_rate, d.yellow_threshold)::text
|
|
WHEN '优惠率' THEN COALESCE(f.baseline_discount_rate, d.yellow_threshold)::text
|
|
WHEN '理论毛利率' THEN COALESCE(f.baseline_margin_rate, d.yellow_threshold)::text
|
|
WHEN '会员复购率' THEN COALESCE(f.baseline_repeat_rate, d.yellow_threshold)::text
|
|
WHEN '实际成本率' THEN v.theoretical_cost_rate_pct::text
|
|
WHEN '饮品搭售率' THEN '15'
|
|
ELSE d.yellow_threshold::text
|
|
END AS benchmark_val,
|
|
CASE t.problem_indicator
|
|
WHEN '异常率' THEN COALESCE(f.target_anomaly_rate, d.red_threshold)::text
|
|
WHEN '优惠率' THEN COALESCE(f.target_discount_rate, d.red_threshold)::text
|
|
WHEN '理论毛利率' THEN COALESCE(f.target_margin_rate, d.red_threshold)::text
|
|
WHEN '会员复购率' THEN COALESCE(f.target_repeat_rate, d.red_threshold)::text
|
|
WHEN '实际成本率' THEN d.red_threshold::text
|
|
WHEN '饮品搭售率' THEN '20'
|
|
ELSE d.red_threshold::text
|
|
END AS target_val
|
|
FROM analytics.store_task t
|
|
LEFT JOIN analytics.v_store_monthly_followup f ON f.store_code = t.store_code
|
|
LEFT JOIN analytics.v_store_action_priority_deep_april v ON v.store_code = t.store_code
|
|
LEFT JOIN analytics.v_store_risk_rating r ON r.store_code = t.store_code
|
|
LEFT JOIN analytics.indicator_dictionary d ON d.indicator_name = t.problem_indicator
|
|
WHERE t.current_value IS NULL
|
|
AND t.problem_indicator IN ('异常率','优惠率','理论毛利率','会员复购率','实际成本率','饮品搭售率')
|
|
) src
|
|
WHERE t.task_id = src.task_id
|
|
AND src.current_val IS NOT NULL;
|