Графана: переменные объединения, полученные из sql-запросов

#sql #variables #grafana

Вопрос:

У меня есть 2 переменные.

  1. клиент.
    Запрос:

     SELECT  title AS __text,  concat('"', id::text,'"') AS __value  FROM clients  WHERE active=true  

Для значения я использую объединение в кавычки, так как некоторые значения могут принимать строковые значения.

  1. приказ. Заказ:
     select name  from orders   where concat('"',client_id::text,'"') =ANY(ARRAY[${client:csv}])   

И соединение между 2 переменными не работает — я получаю ошибку типа:

 Templating [order] Error updating options: pq: column “1106102844810989568” does not exist  

Без объединения join работает хорошо, но это не целевой случай.

Что я делаю не так?

Комментарии:

1. Привет, не могли бы вы предоставить некоторые примеры данных, чтобы лучше понять вашу проблему? Что это значит some values can be strings-values . Первоначально они являются идентификаторами и по умолчанию целыми числами.

2. Привет, наверное, я неправильно выразил идею. Первоначально они являются идентификаторами. Но по некоторым причинам, без приведения к цитатам, join не работает должным образом

3. Что такое client_id::text или client:csv ? Из сообщения об ошибке следует, что оно имеет значение «1106102844810989568». Можете ли вы использовать инспектор запросов в Графане и проверить сгенерированный запрос?

Ответ №1:

Решение заключается в следующем: я заменил ${client:csv} на ${client:sqlstring}

Таким образом, запрос для 2 переменных выглядит следующим образом:

 select name  from orders   where concat('"',client_id::text,'"') =ANY(ARRAY[${client:sqlstring}])