数据集中使用参数

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 参数 

数据集中使用参数

复制链接

1. SQL语句中

假设有个参数名为a的参数,可以以如下形式用在SQL中。

直接?{a}形式

如where city=?{a},参数必须传值

此语句是直接用参数值替换"?{a}"的字符。如果a=北京,就替换成"where city=北京"。因此,a不能是空值,否则"where city="的语句就非法了。

<a></a>中包含?{a}形式

例如<a>where city=?{a}</a>,参数可以不传值

此语句用<a></a>来标注此条where语句的起始位置,<></>里的内容要和参数的名字一样,要成对出现,不可嵌套使用。当a是空值的时候,会自动把此标签之内的语句删除,这个例子里where语句被删除,因此允许a为空。一般使用如下:

select * from coffee where 1=1 <m>and market in ?{m}</m>

select * from coffee <m>where market like ?{m}</m>

例如:

select * from coffee where 1=1 <m>and market in ?{m}</m>,当m为空值的时候,则执行SQL:例如select * from coffee where 1=1;

select * from coffee <m>where market like ?{m}</m>,当m为空值的时候,则执行SQL:select * from coffee;

如果需要进行模糊查询,注意需要把模糊查询的匹配字符放在参数中,不能将参数写在引号内,如select * from coffee <m>where market like ?{m}</m>,然后在m中的值传入%market%,则执行SQL:select * from coffee where market like '%market%'。

?{@a},内嵌参数形式

这种内嵌的参数将被直接在SQL Statement中替换为参数值,而不是调用prepared statement.setParam(),这种办法有更高的灵活性,例如可以不要select而是将select子句作为参数传入, 或者将表名作为参数,如 select * from ?{@a}, a可以是任意输入的table name。

2. Mongo数据集的管道语句中、Neo4j数据集的Cypher语句中、RESTful数据集的JSON查询语句中、RESTful数据集的请求体中

直接?{a}形式,语句里的参数将被直接替换为参数值进行执行。

例如:

管道语句:[{$project: { _id : 0, marke?{t}: 1, sale_date:1, product_type:1, product:1, market_size:1, date_time:1, sales:1, cogs:1, datetime:1}}]

Cypher语句:match (n:Person) where n.born in [?{borns}] return n.name as name, n.born as born order by n.born, n.name

JSON查询语句:$.store.book[?(@.price<?{abc})]

3. 过滤中

包括数据集右侧pane里的过滤、组合数据集节点上的过滤、多维数据集维度字段上的过滤。

clip0261

可以在过滤条件中输入或选择参数来进行过滤,包括产品内置的参数或者用户自建的参数,例如在这里输入参数?{a}。

刷新参数输入参数值为“白金会员”后,预览的数据详情就会只过滤出会员等级为白金会员的数据:

clip0263

4. 计算列中

可以在数据治理-计算列功能中,以 param['参数名']的样式将参数加入计算列。

1)原始数据如图:

clip0345

2)创建图示计算列并设置参数a的值为10:

clip0346

3)得到的计算列值预览:

clip0347

5. 分析算法中

数据集上新建分析算法,选择定制,在脚本输入R的脚本语法,支持param['*']传参。

如:

x<-col[['身高']];

y<-col[['体重']];

model <- lm(formula = y ~ x)

CI <- unname(predict(model, data.frame(x=param[['height']]), level=0.95, interval="confidence"))

result<- list(out1=CI[1],out2=CI[2],out3=CI[3])

参考增强分析->数据集中新建分析算法->定制