0

我正在 Metabase 上创建一个仪表板以将其嵌入到应用程序中。此仪表板有两个问题,其中一个是使用元数据库查询构建器 (AOV) 创建的,另一个是使用 SQL (GMV) 创建的。当我在问题上设置 brand_id 参数时,我收到一条错误消息,指出运行查询时发生错误,但对于 AOV 问题一切正常。你能帮助我吗?

我的仪表板配置

我得到的错误是:

缺少 id:{…} ​ 值:Object { 值:(60)[…],human_readable_values:{},field_id:1241 }​:Object {…}

GMV查询如下:

SELECT sum("public"."crm_store_sales"."total") AS "sum" FROM "public"."crm_store_sales"

WHERE TRUE [[AND {{ brand_id }}]] [[AND {{ data }}]]

我在 AWS EKS 上使用 Metabase 0.31.2,使用内部 Postgres 数据库并查询另一个 Postgres 数据库。

我正在 Windows 10 上通过 Firefox 64 访问元数据库。

4

1 回答 1

0

我们找到了答案:我们所做的是使用原生 SQL 创建一个查询并将一个变量添加到一个 SQL 列表中。这样,当问题嵌入锁定变量时,可以将多个值传递给它。

这是一个例子:

SELECT sum("public"."my_column"."total") AS "sum"
FROM "public"."my_table"

WHERE TRUE
[[AND field1_id in ({{ field1_id }})]]
[[AND {{date}}]]

在本例中,我们创建了两个变量:field1_iddate。如果我们嵌入这个问题并锁定field1_id参数,我们仍然可以向它传递几个值,因为它在一个列表中。例如,您可以将:传递1,2,3,4给此字段,如下所示:

"params": {
   "field1_id": "1,2,3,4" 
}

请注意,元素之间不能有间距。

我相信在引擎盖下 Metabase 做了这样的事情:WHERE TRUE AND field1_id IN (1,2,3,4).

于 2019-02-13T20:32:07.273 回答