历史版本8 :[直连]年月区间过滤组件传参 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本功能变动
5.1-
5.1.5
  • 取消「实时数据」按钮,FineBI 提供「实时数据」和「抽取数据」两种计算模式的 BI 工程,避免实时数据和抽取数据混用带来的问题。

  • 过滤组件「绑定参数」时查找参数支持模糊搜索

1.2 问题描述

由于原始表数据量过大,有时可能会导致内存或磁盘占满的情况,因此通常需要使用 where 语句,加过滤条件来控制数据量。而 where 语句后面加上固定的数值会使得取数不灵活,此时可以使用参数动态控制 BI 取数的数据量,例如取动态时间段内的全部数据。

例如在「年月区间」过滤组件中选择 2015 年的数据,此时数据表中显示 2015 年的数据,如下图所示:

1611039202398969.png

1.3 实现思路

1)添加 SQL 数据集,并在 SQL 语句中配置两个参数:开始时间与结束时间。

2)仪表板中使用「年月区间过滤组件」绑定参数,过滤出 2015 年全年数据。

2. 操作步骤编辑

示例数据:内置 DEMO 下的「互联网_访问统计表」

2.1 添加 SQL 数据集

1)若同时拥有「实时数据」和「抽取数据」功能,则需要在数据列表中切换为「实时数据」,然后选择「数据准备」,点击进入分组下业务包,点击「添加表>添加 SQL 数据集」,如下图所示:

注:只有 数据处理用户 可以创建 SQL 数据集。

2)将数据集命名为「互联网访问数据」,选择数据连接,输入带参数的 SQL 语句,SELECT * FROM 互联网_访问统计表 WHERE 1=1 <parameter> and TO_CHAR("统计日期",'yyyymm') >=concat('${开始年份}',case when cast('${开始月份}' as tinyint)>9 then '${开始月份}' else concat('0','${开始月份}') end ) and TO_CHAR("统计日期",'yyyymm') <=concat('${截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )</parameter>,点击刷新,选择参数类型为「日期」并选择默认值,点击「确定」。如下图所示:

1611107162722434.png

注1:示例为年月区间过滤组件 SQL 写法,不同的数据库写法不同,本文只提供参考示例,其他类型 SQL 参数写法详情参见:SQL 数据集参数写法示例 。

注2:默认值可任意选择,选择默认为空,即选择全部。

2.2 创建仪表板

新建仪表板,使用「互联网访问数据」,添加一个分组表,如下图所示:

1611039010146139.png

2.3 过滤组件绑定参数

添加「年月区间」过滤组件,编辑年月区间过滤组件,选择绑定参数,并点击设置按钮选中参数,如下图所示:

1611039133269708.png

2.4 效果查看

详情参见本文 1.2 节。