5.1. 定义数据集
打开数据集添加界面,填写名称、数据源、查询SQL语句,执行预览,保存后,即完成数据集定义。
其中,SQL语句可以是任意格式的查询语句,例如:
SELECT NAME, MAX(VALUE) AS VALUE FROM T_ANALYSIS GROUP BY NAME
参数化数据集
参数化数据集主要用于支持交互式图表, 当关联了参数化数据集的图表展示时, 用户可自由定义其参数值,从而展示用户需求数据的图表。定义参数化数据集步骤如下:
首先,编写参数化的SQL语句,例如:
SELECT NAME, VALUE FROM T_ANALYSIS WHERE NAME = '${name}'
然后,点击界面右侧的[参数]选项卡,添加name参数:
名称:name, 类型:字符串, 必填:是
点击[预览]选项卡的按钮, 在弹出的参数值面板中填写一个name参数值(例如:张三),执行预览,可以看到最终执行的SQL语句为:
SELECT NAME, VALUE FROM T_ANALYSIS WHERE NAME = '张三'
预览过后,保存即可。
选中SQL语句编辑区的参数名后执行添加参数操作,可自动设置参数名。
参数化SQL语句语法
插值:
${参数名}
条件判断:
<#if 条件></#if>
<#if 条件>…<#else>…</#if>
<#if 条件>…<#elseif 条件>…<#else>…</#if>
数组、集合遍历:
<#list 参数名 as item>…${item}…</#list>
<#list 参数名 as item>…${item}…<#sep>元素间要插入的分隔内容</#list>
条件:
- 参数名??
当用户填写参数名对应的值时为true, 否则为false,可用于处理非必填参数。 - 参数名
布尔参数值为true时。 - !参数名
布尔参数值为false时。 - 参数名 == “…”、 参数名 != “…”
字符串参数值等于、不等于。 - 参数名 == …、 参数名 != …、 参数名 gt …、 参数名 gte …、 参数名 lt …、 参数名 lte …
数值参数值等于、不等于、大于、大于等于、小于、小于等于。 - 条件1 || 条件2、 条件1 && 条件2、 !条件
条件组合:或、与、非。
示例:
SELECT NAME, VALUE FROM T_ANALYSIS
WHERE NAME = '${name}'
<#if 最小值??>
AND VALUE >= ${最小值}
<#else>
AND VALUE IS NOT NULL
</#if>
<#if 名称集合??>
AND NAME IN
(
<#list 名称集合 as item> '${item}' <#sep>,</#list>
)
</#if>
<#if ascByName>
ORDER BY NAME ASC
</#if>
<#if limitCount??>
limit 0, ${limitCount}
</#if>
对应上述示例的数据集参数为:
名称 | 类型 | 必填 |
---|---|---|
name | 字符串 | 是 |
最小值 | 数值 | 否 |
名称集合 | 字符串 | 否 |
ascByName | 布尔值 | 是 |
limitCount | 数值 | 否 |
参数化SQL语句的解析底层采用了Freemarker,详细语法请参考其官方文档。
设置参数输入框类型
在定义数据集参数时,可选设置参数输入框类型(默认为文本框),当图表展示时,数据集参数设置面板将被绘制为指定类型的输入框。
系统目前支持的输入框类型为:文本框、下拉框、日期、时间、日期时间、单选框、复选框、文本域,详细设置如下表所示:
输入框类型 | 输入框配置格式 | 参数值是否为集合 |
---|---|---|
文本框 | 无 | 否 |
下拉框 | 单选下拉框选项名/值配置:多选下拉框选项名/值配置: 待选项名值对象格式为:{ name: “…”, value: … }, 当名、值相同时,则可简写为字符串:”…” | 多选时:是;单选时:否 |
日期 | 可选,日期格式配置:默认为: 日期值将会是如2020-07-26的字符串。 | 否 |
时间 | 可选,时间格式配置:默认为: 时间值将会是如04:01:00的字符串。 | 否 |
日期时间 | 可选,日期时间格式配置:默认为: 日期时间值将会是如2020-07-26 04:01:00的字符串。 | 否 |
单选框 | 单选框选项名/值配置:待选项名值对象格式为:{ name: “…”, value: … }, 当名、值相同时,则可简写为字符串:”…” | 否 |
复选框 | 复选框选项名/值配置:待选项名值对象格式为:{ name: “…”, value: … }, 当名、值相同时,则可简写为字符串:”…” | 是 |
文本域 | 无 | 否 |
其中,日期格式各符号说明如下表所示:
符号 | 描述 |
---|---|
Y | 年份(4位长度) |
m | 月份(2位长度,01-12) |
d | 天(2位长度,01-31) |
H | 小时(2位长度24时制,00-23) |
i | 分钟(2位长度,00-59) |
s | 秒数(2位长度,00-59) |