嵌入带有锁定参数的元数据库仪表板时出错

时间:2019-01-22 10:45:50

标签: metabase

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

My dashboard config

我得到的错误是:

缺少ID: {…} 值:对象{值:(60)[…],人类可读值:{},字段ID:1241} :对象{…}

下面是GMV查询:

SELECT sum(“ public”。“ crm_store_sales”。“ total”)AS“ sum” 来自“公开”。“ crm_store_sales”

正确的地方 [[AND {{brand_id}}]] [[AND {{data}}]]

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

我正在通过Windows 10上的Firefox 64访问Metabase。

1 个答案:

答案 0 :(得分: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)