Ошибка встраивания панели метабазы ​​с заблокированными параметрами - PullRequest
0 голосов
/ 22 января 2019

Я создаю информационную панель на Metabase, чтобы встроить ее в приложение.Эта панель имеет два вопроса, один из которых был создан с помощью построителя запросов Metabase (AOV), а другой - с помощью SQL (GMV).Когда я задаю параметр brand_id для вопроса, я получаю сообщение об ошибке, в котором говорится, что во время выполнения запроса произошла ошибка, но для вопроса AOV все работает нормально.Можете ли вы помочь мне?

My dashboard config

Я получаю ошибку:

Отсутствует идентификатор: {…} values: Object {значения: (60) […], human_readable_values: {}, field_id: 1241}: Object {…}

И запрос GMV ниже:

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

ГДЕ ИСТИНА [[AND {{brand_id}}]] [[AND {{data}}]] *

Я использую Metabase 0.31.2 в AWS EKS, использую внутреннюю базу данных Postgres и запрашиваю другую базу данных Postgres.

Я получаю доступ к Metabase через Firefox 64 в Windows 10.

1 Ответ

0 голосов
/ 13 февраля 2019

Мы нашли ответ: мы создали запрос с использованием собственного 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_id и date.Если мы вставим этот вопрос и заблокируем параметр field1_id, мы все равно сможем передать ему несколько значений, поскольку он находится внутри списка.Например, вы можете передать: 1,2,3,4 в это поле следующим образом:

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

Обратите внимание, что между элементами не должно быть промежутков.

Я считаю, что под колпаком Метабазаделает что-то вроде этого: WHERE TRUE AND field1_id IN (1,2,3,4).

...