【问题标题】:Error embedding Metabase dashboard with locked parameters使用锁定参数嵌入 Metabase 仪表板时出错
【发布时间】:2019-01-22 10:45:50
【问题描述】:

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

我得到的错误是:

缺少 ID: {…} ​​​ 值:对象 { 值:(60)[…],human_readable_values:{},field_id:1241 } ​​​ : 对象 { … }

GMV 查询如下:

选择 sum("public"."crm_store_sales"."total") AS "sum" FROM "public"."crm_store_sales"

哪里是真的 [[AND {{ 品牌 ID }}]] [[AND {{ 数据}}]]

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

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

【问题讨论】:

    标签: metabase


    【解决方案1】:

    我们找到了答案:我们所做的是使用原生 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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2013-03-25
      • 2018-06-17
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多