1. 概述编辑
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
5.1 | - |
5.1.5 |
|
1.2 问题描述
由于原始表数据量过大,有时可能会导致内存或磁盘占满的情况,因此通常需要使用 where 语句,加过滤条件来控制数据量。而 where 语句后面加上固定的数值会使得取数不灵活,此时可以使用参数动态控制 BI 取数的数据量,例如取动态时间段内的全部数据。
例如在「年月区间」过滤组件中选择 2015 年的数据,此时数据表中显示 2015 年的数据,如下图所示:
1.3 实现思路
1)添加 SQL 数据集,并在 SQL 语句中配置两个参数:开始时间与结束时间。
2)仪表板中使用「年月区间过滤组件」绑定参数,过滤出 2015 年全年数据。
2. 操作步骤编辑
示例数据:内置 DEMO 下的「互联网_访问统计表」
2.1 添加 SQL 数据集
1)登录 FineBI ,选择「数据准备」,进入业务包,点击「添加表>添加 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>,点击刷新,选择参数类型为「日期」并选择默认值,点击「确定」。如下图所示:
注1:示例为年月区间过滤组件 SQL 写法,不同的数据库写法不同,本文只提供参考示例,其他类型 SQL 参数写法详情参见:SQL 数据集参数写法示例 。
注2:默认值可任意选择,选择默认为空,即选择全部。
2.2 创建仪表板
新建仪表板,使用「互联网访问数据」,添加一个分组表,如下图所示:
2.3 过滤组件绑定参数
添加「年月区间」过滤组件,编辑年月区间过滤组件,选择绑定参数,并点击设置按钮选中参数,如下图所示:
2.4 效果查看
详情参见本文 1.2 节。