5.1. 定义数据集

打开数据集添加界面,填写名称、数据源、查询SQL语句,执行预览,保存后,即完成数据集定义。

其中,SQL语句可以是任意格式的查询语句,例如:

  1. SELECT NAME, MAX(VALUE) AS VALUE FROM T_ANALYSIS GROUP BY NAME

参数化数据集

参数化数据集主要用于支持交互式图表, 当关联了参数化数据集的图表展示时, 用户可自由定义其参数值,从而展示用户需求数据的图表。定义参数化数据集步骤如下:

首先,编写参数化的SQL语句,例如:

  1. SELECT NAME, VALUE FROM T_ANALYSIS WHERE NAME = '${name}'

然后,点击界面右侧的[参数]选项卡,添加name参数:

名称:name, 类型:字符串, 必填:是

点击[预览]选项卡的按钮, 在弹出的参数值面板中填写一个name参数值(例如:张三),执行预览,可以看到最终执行的SQL语句为:

  1. SELECT NAME, VALUE FROM T_ANALYSIS WHERE NAME = '张三'

预览过后,保存即可。

选中SQL语句编辑区的参数名后执行添加参数操作,可自动设置参数名。

参数化SQL语句语法

插值:
${参数名}

条件判断:
<#if 条件></#if>
<#if 条件>…<#else>…</#if>
<#if 条件>…<#elseif 条件>…<#else>…</#if>

条件:

  • 参数名??
    当用户填写参数名对应的值时为true, 否则为false,可用于处理非必填参数。
  • 参数名
    布尔参数值为true时。
  • !参数名
    布尔参数值为false时。
  • 参数名 == “…”、 参数名 != “…”
    字符串参数值等于、不等于。
  • 参数名 == …、 参数名 != …、 参数名 gt …、 参数名 gte …、 参数名 lt …、 参数名 lte …
    数值参数值等于、不等于、大于、大于等于、小于、小于等于。
  • 条件1 || 条件2、 条件1 && 条件2、 !条件
    条件组合:或、与、非。

示例:

  1. SELECT NAME, VALUE FROM T_ANALYSIS
  2. WHERE NAME = '${name}'
  3. <#if 最小值??>
  4. AND VALUE >= ${最小值}
  5. <#else>
  6. AND VALUE IS NOT NULL
  7. </#if>
  8. <#if ascByName>
  9. ORDER BY NAME ASC
  10. </#if>
  11. <#if limitCount??>
  12. limit 0, ${limitCount}
  13. </#if>

对应上述示例的数据集参数为:

名称类型必填
name字符串
最小值数值
ascByName布尔值
limitCount数值

参数化SQL语句的解析底层采用了Freemarker,详细语法请参考其官方文档。