0

在 Metabase 中,可以在查询中添加变量{{variable}},例如:

select *
from dashboard_demographic_view
where clinic_id = {{clinic}}

dashboard_demographic_view,预先创建的视图在哪里。在上面的查询中,将返回clinic_id与给定内容匹配的行。{{clinic}}

不过,我很好奇如果我只在我给出{{clinic}}一个值时才需要那个过滤器,否则查询应该返回所有行。仅当变量不为空时,我才提到SQL 添加过滤器,但在我的情况下它没有帮助。

select *
from dashboard_demographic_view
where ({{clinic}} is null or clinic_id = {{clinic}})

上面的查询给出了无法替换“诊所”:未指定参数。发现: ("clinic")当我没有指定clinic.

理论上,这可以通过使变量{{clinic}}成为字段过滤器来解决。但是,由于某些原因,视图无法完成(元数据库中的 #8800)。

我正在寻找解决方法,而不是制作一张真正的桌子来实现我的目的。任何帮助,将不胜感激。

4

1 回答 1

1

可选条款在这里对您有帮助吗?请参阅元数据库文档的结尾:Sql 参数

您的代码基本上会变成类似

select *
from dashboard_demographic_view
[[where clinic_id = {{clinic}})]]

(这个问题可能之前也有人问过——也许值得检查 Stack Overflow 中是否有重复项。)

于 2018-10-31T10:16:21.160 回答