在数据分析中,一些复杂的逻辑或模型可通过自定义SQL创建数据表。并且自定义SQL支持传参,可满足更复杂多变的分析场景。
前提条件
输入SQL代码
您可以通过以下2种方式添加自定义SQL。
修改SQL代码
您可以通过以下2种方式修改SQL代码:
- 鼠标悬浮至画布的表上,单击编辑代码图标。
- 单击画布上的目标表,在右侧的面板中,单击编辑代码。
参数和占位符
Quick BI提供参数和占位符2种方式传参方式,在分析的过程中,当您在查看仪表板时需要把参数传到SQL中,可以按照需求进行选择。
类别 | 描述 | 使用场景 | 格式 |
---|---|---|---|
占位符 | 可通过仪表板上的查询控件传入一个值或一组值。
说明 当占位符是日期时,需要选择具体的日期格式,来控制传入值的格式。
|
适用于大部分需要传参的场景。 | ${占位符名} |
参数 | 可通过仪表板上的查询控件传入一个条件。 | 当仪表板上的筛选条件中,用户可以自由修改筛选方式,需要使用参数,将整个筛选条件都传入SQL。
例如下图仪表板用户可设置
利润>50 或者利润<50 ,需要连同操作符一起传入SQL。![]() |
${物理字段名:参数名} |
配置方式
根据业务需要写SQL,加入占位符或参数。
标签占位符
通过标签占位符获取当前访问用户的标签值。
格式: $tag{用户标签名}
例如,控制某员工只能看到华北大区的数据,只能看到商品A,商品B的数据,则配置某用户的标签:
- 区域:
华北
- 商品:
商品A, 商品B
SQL代码片段示例:
select * from table_name
where
area = '$tag{区域}'
and
product in ('$tag{商品}')
当某用户访问数据时,系统会自动读取该用户的标签,运行时的SQL示例。
select * from table_name
where
area = '华北'
and
product in ('商品A', '商品B')
SQL参数默认值
当SQL数据集的数据量过大时,仅通过参数查询会使数据返回时间过长,导致数据集保存超时失败,此时建议增加SQL参数默认值。Quick BI能根据默认值快速获取数据,降低查询时间。
SQL参数默认值的生效范围为仅编辑页和全局生效。
- 仅编辑页:配置该选项后,该默认值仅在数据集预览页面生效。
例如,设置
profit_amt>200
,则配置效果如下图。 - 全局生效:配置该选项后,基于该数据集创建的报表中,默认值的生效规则如下:
- 若报表中没有查询控件或查询控件未设置默认值,则以数据集设置的查询默认值为准。
例如,设置数据集查询默认值为
华东
,则仪表板中配置效果如下图。 - 若报表中的查询控件设置默认值,则以查询控件中的默认值为准。
例如,查询控件的默认值为西北,则仪表板中配置效果如下图。
- 若报表中没有查询控件或查询控件未设置默认值,则以数据集设置的查询默认值为准。