From baa49d1a94bbdf3f8ad58e55170dc13a4de73162 Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Tue, 11 Aug 2026 20:02:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=B7=E6=96=B0mv=5Foverview=5Fmonthl?= =?UTF-8?q?y=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=AE=9E=E6=94=B6=E5=8F=A3?= =?UTF-8?q?=E5=BE=84=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mv_overview_monthly是普通表不是物化视图,需要DELETE+INSERT更新 之前未刷新导致/overview API返回旧数据(6083万 vs bill_fact 6441万) 刷新脚本加入mv_overview_monthly更新步骤 --- scripts/refresh_materialized_views.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scripts/refresh_materialized_views.sh b/scripts/refresh_materialized_views.sh index b7d2fc3..f6a0a20 100755 --- a/scripts/refresh_materialized_views.sh +++ b/scripts/refresh_materialized_views.sh @@ -24,6 +24,23 @@ psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" < 0 THEN discount_total::numeric / consumption * 100 ELSE 0 END)::numeric, 2) AS discount_rate_pct, + 0 AS theoretical_margin_pct, + 0 AS member_bills, + 0 AS member_share_pct +FROM analytics.bill_fact +WHERE closed_at >= '${MONTH_START}' AND closed_at < ('${MONTH_START}'::date + interval '1 month') +GROUP BY date_trunc('month', closed_at); +SELECT 'mv_overview_monthly updated' AS status; + -- 第二层:门店评估 REFRESH MATERIALIZED VIEW analytics.mv_store_risk_rating_monthly; REFRESH MATERIALIZED VIEW analytics.mv_store_theoretical_actual_cost_monthly;