From 99b845eb30a4a23eb96de32566a72a7187a6981b Mon Sep 17 00:00:00 2001 From: zlt Date: Fri, 4 Sep 2026 10:17:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=94=E5=88=A4=E8=A7=86=E5=9B=BE=EF=BC=9A?= =?UTF-8?q?=E5=8F=8C=E5=86=92=E5=8F=B7=E7=9A=84=E7=8E=AF=E8=8A=82=E7=B0=87?= =?UTF-8?q?=E9=94=AE=E5=8D=95=E7=8B=AC=E5=8F=96=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2026-09-04 起数据基座按投影环节做评析,簇键是 Segment:: 双冒号,与逐条论断 聚簇出来的单冒号 Segment: 分开——后者是研报里的自由短语,在投影里未必查得到 这个环节。双冒号那一支必须写在前面,否则会截出一个多余的冒号。 判定 scope 的那一句不用改:双冒号同样满足单冒号的前缀匹配,两者都归 segment。 Co-Authored-By: Claude Opus 5 --- sql/astock_kg_logic_views.sql | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sql/astock_kg_logic_views.sql b/sql/astock_kg_logic_views.sql index 746764b..d8dc05e 100644 --- a/sql/astock_kg_logic_views.sql +++ b/sql/astock_kg_logic_views.sql @@ -223,7 +223,14 @@ SELECT CASE r.beneficiary AS subject_name, CASE WHEN r.cluster_key LIKE 'Company:%' THEN substr(r.cluster_key, length('Company:') + 1) END AS ts_code, - CASE WHEN r.cluster_key LIKE 'Segment:%' + -- 双冒号那一支必须写在前面:双冒号的键同样满足单冒号的前缀匹配, + -- 顺序反了会截出一个多余的冒号。 + -- 双冒号 Segment:: 是 2026-09-04 起按投影环节做的评析,环节名与传导目标同一命名空间; + -- 单冒号 Segment: 是逐条论断聚簇出来的研报自由短语,在投影里未必查得到这个环节。 + -- scope 的判定不用改:双冒号同样满足 LIKE 'Segment:%',两者都归 segment。 + CASE WHEN r.cluster_key LIKE 'Segment::%' + THEN substr(r.cluster_key, length('Segment::') + 1) + WHEN r.cluster_key LIKE 'Segment:%' THEN substr(r.cluster_key, length('Segment:') + 1) END AS segment_name, r.comparison->>'leaning' AS leaning, r.comparison->'core_contradiction'->>'text' AS core_contradiction,