1. 概述
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
6.0 | - |
6.0.16 | 过滤组件绑定参数界面优化 |
1.2 问题描述
由于原始表数据量过大,有时可能会导致内存或磁盘占满的情况,因此通常需要使用 where 语句,加过滤条件来控制数据量。而 where 语句后面加上固定的数值会使得取数不灵活,此时可以使用参数动态控制 BI 取数的数据量,例如取动态时间段内的全部数据。
例如在「年月区间」过滤组件中选择 2015 年的数据,此时数据表中显示 2015 年的数据,如下图所示:
1.3 实现思路
1)添加 SQL 数据集,并在 SQL 语句中配置两个参数:开始时间与结束时间。
2)仪表板中使用「年月区间过滤组件」绑定参数,过滤出 2015 年全年数据。
2. 操作步骤
示例数据:互联网访问统计表 .xlsx
下载示例数据并上传至 SQL Server。
2.1 添加 SQL 数据集
1)若同时拥有「抽取数据」和「直连数据」功能,则需要在数据列表中切换为「直连数据」。然后在公共数据中,点击「新建数据集 SQL 数据集」,如下图所示:
注:只有 数据处理用户 可以创建 SQL 数据集。
2)将数据集命名为「互联网访问数据」,选择数据连接,输入带参数的 SQL 语句,SELECT * FROM 互联网访问数据 WHERE format(统计日期,'yyyyMM') >=concat('${开始年份}',case when '${开始月份}'>9 then '${开始月份}'else concat(0,'${开始月份}') end ) and format(统计日期,'yyyyMM') <=concat('${截至年份}',case when '${截至月份}'>9 then '${截至月份}'else concat(0,'${截至月份}') end ),点击刷新,选择参数类型为「日期」并选择默认值,点击「确定」。如下图所示:
注1:示例为年月区间过滤组件 SQL 写法,不同的数据库写法不同,本文只提供参考示例,其他类型 SQL 参数写法详情参见:SQL 数据集参数写法示例 。
注2:默认值可任意选择,选择默认为空,即选择全部。
2.2 制作分组表
添加组件,制作出如下的分组表:
2.3 过滤组件绑定参数
1)添加仪表板,将制作的分组表拖进仪表板中。并新增「年月区间」过滤组件,如下图所示:
2)勾选「绑定参数」,在设置中对开始时间绑定 SQL 参数,开始时间的「年」绑定「开始年份」,「月」绑定「开始月份」;结束时间同理,如下图所示:
注:由于所有 SQL 数据集获取的参数都在绑定参数下拉框中,因此参数最好不要用一样的参数名。
2.4 效果查看
详情参见本文 1.2 节。