tencent cloud

腾讯云 BI

产品简介
产品概述
产品优势
产品功能
应用场景
购买指南
计费说明
购买指引
升配说明
续费说明
快速入门
数据接入
创建 VPC 数据源
创建云数据源
创建自有数据源
数据建表和数据加工
数据分析基础知识介绍
数据建表
数据加工
数据分析
分析设置
交互分析
即席分析
数据可视化
公共样式设置说明
筛选组件
图表组件
富文本组件
其他组件
移动端布局编辑器
主题设置介绍
页面布局介绍
看板目录管理
协作及应用
推送渠道管理
报表推送
分享
嵌出
自助取数
指标告警
数据安全
参数构建
平台管理
账号及权限管理
统计及分析
系统设置
资源迁移
实践教程
优化实践合集
如何做趋势分析
如何做占比分析
如何使用 Excel 文件分析数据
如何做表格
常见问题
相关协议
服务等级协议
隐私协议
数据处理和安全协议
联系我们

SQL 参数

PDF
聚焦模式
字号
最后更新时间: 2025-09-19 15:14:19

使用场景

在数据分析的过程中,若您的数据量较大,期望在分析时提升查询速度,可在 SQL 建表时创建参数,并与报表的过滤筛选器绑定。在查看报表时 BI 将会把筛选内容传到 SQL 参数中,在 SQL 查询时就预先过滤,以提升查询速度。

例如您的数据表中包含2020 ~ 2023年3年的数据,日常分析时只需要分析2023年数据。若不使用参数,在报表查看时使用时间筛选器筛选2023年数据,系统会先查询2020 ~ 2023年这3年的数据再取2023年数据展示。若使用参数并与时间筛选器绑定,则报表查看时使用时间筛选器筛选2023年数据,系统会将2023年作为查询条件替换掉 SQL 中的参数,仅查询2023年的数据。因此使用参数后查询数据量为原先的三分之一,速度是原来的三倍。

说明:
版本功能限制说明:本功能仅支持基础版和专业版用户使用。

SQL 参数的创建

在 SQL 建表界面,SQL 语句输入框中,以输入${参数名}来定义参数,例如输入${A}则代表定义了一个参数名为A的参数。


如果在希望在制作报表时配置地区、时间、销售额的筛选器(地区是单选筛选器、时间是时间区间筛选器,销售额是数值区间筛选器)筛选器的筛选的值能直接作用在 SQL 中,提升查询速率。



此时在输入框中如下图所示书写语句,定义好 A、B、C、D、E 五个参数。注意语句的写法需和筛选器的用法搭配,例如 area 即地区字段后续使用的是单选筛选器,仅传一个值,就写法为“area = '${A}'”。若计划使用的是多选筛选器,传多个值,则写法应为“area in ('${A}')”。



写法如下供复制及参考
select * FROM dataSales_1000000
where area = '${A}'
and subscriptionDate >= '${B}' and subscriptionDate <= '${C}' and salesAmount >= '${D}' and salesAmount <= '${E}'
书写完 SQL 后单击参数配置,可在此确认定义的参数。并设置参数的类型和查询默认值。



参数类型分“字符”、“数值”、“时间”三种,当选择类型为时间时还会拓展对时间格式的选择,默认是“YYYY-MM-DD”。参数类型的定义会影响后续能绑定的筛选器类型,如数值类型仅能绑定数值筛选器,字符类型仅能绑定文本筛选器,时间类型仅能绑定时间筛选器。在此例子中,A后续绑定文本筛选器,所以设置为字符型;B、C绑定时间筛选器,所以设置为时间类型;D、E绑定数值筛选器,所以设置为数值类型。



查询默认值指没有通过筛选器给参数传值的场景下,数据查询时参数的默认值。例如SQL建表时下方的数据预览、数据表查看页、报表页面筛选器未进行设置等场景。此字段非必填,未填会用“1=1”的恒等式替代。数据量过大时推荐配置,减少查询时间。例如在这个例子中的数据表有百万行,若未设置默认值查询会较慢。此时建议可以给 B、C 设置默认值,速度便会快很多。








在配置弹窗中设置完参数的类型和默认值后,需单击“确定”提交才可生效,否则不生效。

若您想查看最终执行的 SQL,可单击查看 SQL 进行查看。此时您将看到参数被默认值替换(若未设置默认值,则是用恒等式替换)的最终结果,如下图二。







若需新增或删除参数,需在 SQL 语句框内新增或删除参数后,进入“参数配置”单击确定提交修改结果。

SQL 参数的绑定

假设在画布页中已经配好一个图表。接下来讲解如何配置与参数绑定的筛选器。需配置地区的单选筛选器、时间区间筛选器,销售额的数值区间筛选器。


时间筛选器,选择参数,进行参数绑定

文本筛选器

数值筛选器



时间函数和偏移量

1. BI 的 SQL 参数,支持时间函数,例如 ${yyyyMMdd}、${yyyy-MM-dd} 等。其中,yyyy 表示4位的年份,yy 表示2位的年份,MM 表示月,dd 表示天,HH 表示时,mm 表示分,ss 表示秒。各部分之间支持灵活组合,如下表:
时间参数
替换值示例(假设当前时间是2021年7月10号8:00:00)
${yyyy}
2021
${yyyyMMdd}
20210710
${yyyy-MM-dd}
2021-07-10
${yyyy/MM/dd}
2021/07/10
${yyyyMMddHHmmss}
20210710080000
${yyyyMMddHHmm}
202107100800
${yyyyMMddHH}
2021071008
${yyyy-MM-dd HHmmss}
2021-07-10 080000
${yyyy-MM-dd HHmm}
2021-07-10 0800
${yyyy-MM-dd HH}
2021-07-10 08
2. 支持偏移量的写法,如下表。
时间
时间参数格式
替换值示例(假设当前时间是2021年7月10号8:00:00)
后 N 年
${yyyyMMdd+Ny}
若引用 dt=${yyyyMMdd-1M},将执行替换:dt=20210610
若引用 dt=${yyyyMMdd-1d},将执行替换:dt=20210709
若引用 dt=${yyyy-MM-dd-1d},将执行替换:dt=2021-07-09
若引用 dt=${yyyyMMddHHmmss-3h},将执行替换:dt=20210710050000
若引用 dt=${yyyyMMddHHmmss-25m},将执行替换:dt=20210710073500
前 N 年
${yyyyMMdd-Ny}
后 N 月
${yyyyMMdd+NM}
前 N 月
${yyyyMMdd-NM}
后 N 周
${yyyyMMdd+Nw}
前 N 周
${yyyyMMdd-Nw}
后 N 天
${yyyyMMdd+Nd}
前 N 天
${yyyyMMdd-Nd}
3. 支持常见的日期的转换表达式,如下:
时间参数格式
说明
示例(假设当前时间是2021年7月10号8:00:00)
${yyyyMMdd+ME}
MONTH END 数据日期对应月末
20210731
${yyyyMMdd+MS}
MONTH START 数据日期对应月初
20210701
${yyyyMMdd+QE}
QUARTER END 数据日期对应季末
20210930
${yyyyMMdd+QS}
MONTH START 数据日期对应季初
20210701
${yyyyMMdd+YE}
YEAR END 数据日期对应年末
20211231
${yyyyMMdd+YS}
YEAR START 数据日期对应年初
20210101
${yyyyMMdd+PME}
PRI MONTH END 数据日期对应上月月末
20210630
${yyyyMMdd+PYE}
PRI YEAR END #数据日期上年年末
20201231
4. 支持组合使用,例如(假设当前时间是2021年7月10号8:00:00):
偏移量的组合,如 ${yyyyMMdd-1M-1d}=20210609
时间函数和偏移量的组合,如 ${yyyyMMdd+ME-1d}=20210730,如${yyyyMMdd-1d+ME}=20210731
5. 由时间函数和偏移量组成的 SQL 参数,在绑定筛选器时依然能被时间类型的筛选器所绑定,绑定后在查看报表时,筛选器筛选的值,将替换掉的是整个花括号里的内容,而不仅只是前面的 yyyyMMdd 的部分,例如当前时间是2021年7月10号8:00:00,则参数${yyyyMMdd+ME-1d}绑定了筛选器后,筛选器选择的起始日期和结束日期都是T-1,则最终筛选出来的数据是2021年7月9号 - 2021年7月9号。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈