# 动态参数使用说明
动态参数支持调整语句中部分内容,在实际计算时会将动态参数的值带入到查询语句中,替换用到的变量${参数类型:参数名}
,保存报表时当前动态参数的参数值将作为默认值保存下来。
您可以将多次使用的复杂语句片段通过一个动态参数进行管理,也可以让报表查看者通过动态参数在一定范围内进行修改查询语句。
# 可变内容
可变内容动态参数支持选择具体时间或自定义输入值,计算时直接替换。
举例来说,在按金币量排名TOP N时,您可以用可变内容代表N,由运营根据需要拉取前10、前100或前1000的用户明细,无需保存多个报表。
SELECT * FROM
ta.v_user_2
ORDER BY "coin_sum" DESC
LIMIT ${Variable1}
注意
为了数据安全,可变内容中不能出现原先查询语句中未使用过的表。
# 事件时间
您可以通过事件时间动态参数,快速筛选分析时段内的事件数据。
举例来说,SQL报表需要按用户在过去7天的累计付费金额排名,您可以添加动态参数并选择动态时间范围,报表查询时会基于相对当天的过去7天的付费事件进行统计。
SELECT
"#user_id"
, sum("count") count_sum
FROM
v_event_2
WHERE (("$part_event" = 'recharge') AND (${PartDate:date1}))
GROUP BY "#user_id"
ORDER BY count_sum desc
LIMIT 10
如果您的项目有开启多时区,还可以额外选择事件时间参数“是否受时区偏移影响”,受时区影响的动态参数,在计算时将会基于偏移到展示时区下的事件发生日期(即"$part_date_with_timezone"
)进行筛选,而不是基于"$part_date"
筛选,和其他模型逻辑保持一致。
需要注意的是,该动态参数仅对当前项目的事件表生效,不影响SQL报表中其他项目的事件表。
# 表达式(数值、文本、时间)
在对数值、文本、时间三种类型的字段进行筛选时,您可以使用表达式动态参数灵活配置。
举例来说,累计付费金额是数值型用户属性,您可以在查询语句中插入数值表达式,由报表查看者自行筛选累计付费金额在某个区间或者大于一定数量的用户。
SELECT * FROM
ta.v_user_2
WHERE "coin_num" ${Number:number1}
LIMIT 10
# 选择项
您可以通过选择项动态参数,为预先准备好的语句片段设置不同的选项名称,查看者只需根据名称选择,对应的语句片段将自动替换动态参数。
举例来说,根据等级区间可以将用户划分为不同类型,报表查看者希望快速按类型查看用户明细,您可以为不同等级区间的筛选语句片段设置好名称方便选择。
SELECT * FROM
ta.v_user_2
WHERE "user_level" ${Selector:selector2}
LIMIT 10