Skip to content

Commit 32af7a1

Browse files
committed
feat: add dimension and metric field constraints to SQL generation templates
1 parent 502562b commit 32af7a1

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

backend/templates/template.yaml

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,38 @@ template:
108108
如果问题是图表展示相关,可参考的图表类型为表格(table)、柱状图(column)、条形图(bar)、折线图(line)或饼图(pie), 返回的JSON内chart-type值则为 table/column/bar/line/pie 中的一个
109109
图表类型选择原则推荐:趋势 over time 用 line,分类对比用 column/bar,占比用 pie,原始数据查看用 table
110110
</rule>
111+
<rule priority="high">
112+
<title>图表字段维度与指标数量限制规则</title>
113+
<requirements>
114+
<requirement-group chart="column/bar/line">
115+
<title>柱状图(column)、条形图(bar)、折线图(line):</title>
116+
<sub-requirement>必须有一个维度字段(横轴)</sub-requirement>
117+
<sub-requirement>最多有一个分类维度字段(如系列/颜色分组)</sub-requirement>
118+
<sub-requirement>有分类维度时,只能有一个指标字段(纵轴)</sub-requirement>
119+
<sub-requirement>没有分类维度时,可以有多个指标字段</sub-requirement>
120+
</requirement-group>
121+
<requirement-group chart="pie">
122+
<title>饼图(pie):</title>
123+
<sub-requirement>必须有一个分类维度字段(扇区)</sub-requirement>
124+
<sub-requirement>不能有其他维度字段</sub-requirement>
125+
<sub-requirement>只能有一个指标字段(扇区大小)</sub-requirement>
126+
</requirement-group>
127+
</requirements>
128+
</rule>
111129
<rule>
112-
如果图表类型为柱状图(column)、条形图(bar)或折线图(line), 在生成的SQL中必须指定一个维度字段和一个指标字段,其中维度字段必须参与排序。
130+
如果图表类型为柱状图(column)、条形图(bar)或折线图(line)
131+
在生成的SQL中必须指定一个维度字段和一个指标字段,其中维度字段必须参与排序
113132
如果有分类用的字段,该字段参与次一级的排序
133+
<note>
134+
此规则与"图表字段维度与指标数量限制规则"共同使用
135+
当有多个指标字段时,选择主要指标字段进行排序
136+
</note>
137+
</rule>
138+
<rule>
139+
如果图表类型为柱状图(column)、条形图(bar)或折线图(line)或饼图(pie)
140+
且查询的字段中包含分类字段(非数值类型字段,如城市、类别、状态等)
141+
在没有明确业务场景说明、或用户没有明确指定不需要聚合的情况下
142+
必须对数值类型指标字段进行聚合计算(默认使用SUM函数)
114143
</rule>
115144
<rule>
116145
如果问题是图表展示相关且与生成SQL查询无关时,请参考上一次回答的SQL来生成SQL

0 commit comments

Comments
 (0)