在Metabase中,可以在查询中使用{{variable}}
添加变量,例如:
select *
from dashboard_demographic_view
where clinic_id = {{clinic}}
,其中dashboard_demographic_view
是预先创建的视图。在上面的查询中,将返回clinic_id
与{{clinic}}
中给出的内容匹配的行。
还是,我很好奇,如果仅当我给{{clinic}}
赋值时才需要该过滤器,否则查询应该返回所有行。我已经提到过SQL add filter only if a variable is not null,但对我来说却无济于事。
select *
from dashboard_demographic_view
where ({{clinic}} is null or clinic_id = {{clinic}})
上面的查询给出无法替换'clinic':未指定参数。未指定clinic
时发现:(“诊所”)。
理论上,这可以通过使变量{{clinic}}
成为字段过滤器来解决。但是,由于某些原因,视图(#8800 in metabase)无法做到。
我正在寻找解决方法,而不是制作一张真正的桌子来实现我的目的。任何帮助将不胜感激。
答案 0 :(得分:1)
可选条款会在这里帮助您吗?参见Metabase Documentation: Sql Parameters的结尾。
您的代码本质上将变成类似
select *
from dashboard_demographic_view
[[where clinic_id = {{clinic}})]]
(这个问题可能也已经提过,也许值得检查一下堆栈溢出中是否有重复项。)