Создание QL-чарта

Для QL-чартов доступны те же общие настройки и настройки секций, что и для чартов на основе датасета. Для полей чарта доступны только некоторые настройки показателей.

Чтобы создать QL-чарт:

  1. Перейдите к уже созданному подключению БД.
  2. Убедитесь, что в подключении активирована настройка Уровень доступа SQL-запросовРазрешить подзапросы в датасетах и запросы из чартов.
  3. В правом верхнем углу нажмите Создать QL-чарт.
  4. На вкладке Запрос укажите запрос, используя SQL-диалект БД, к которой вы обращаетесь.
  5. В левом нижнем углу нажмите кнопку Запустить.

После выполнения запроса появится визуализация на основе ваших данных.

Пример запроса для БД ClickHouse
SELECT Category, Month, ROUND(SUM(Sales))FROM samples.SampleLiteWHERE Category in {{category}} -- переменная, используемая в селектореGROUP BY Category, Month -- группировка по категории и месяцуORDER BY Category, Month -- сортировка по категории и месяцу

Добавление параметров селектора

Для QL-чартов в области редактирования чарта на вкладке Параметры можно управлять параметрами селектора, а на вкладке Запрос указывать переменную в самом запросе в формате {{variable}}.

Чтобы добавить параметр:

  1. Перейдите на вкладку Параметры при создании чарта.

  2. Нажмите Добавить параметр.

  3. Установите тип значения для параметра. Например, date-interval.

  4. Задайте имя параметру. Например, interval.

  5. Установите значения по умолчания. Например, 2017-01-01 — 2019-12-31.

    image

Интервалы

Параметры типа date-interval и datetime-interval можно использовать в коде запроса только с постфиксами _from и _to. Например, для параметра interval со значением 2017-01-01 — 2019-12-31 нужно указать:

  • interval_from — для получения начала интервала (2017-01-01);
  • interval_to — для получения конца интервала (2019-12-31).
Пример запроса
SELECT toDate(Date) as datedate, count ('Oreder ID')FROM samples.SampleLiteWHERE {{interval_from}} < datedate AND datedate < {{interval_to}}GROUP BY datedateORDER BY datedate

Подстановка параметра в запрос QL-чарта

Значения для параметра из селектора в QL-чарт приходят в виде:

  • единичного значения — если выбран один элемент;
  • кортежа (tuple) — если выбрано несколько элементов.

Если в тексте запроса перед параметром указан оператор in, то подставляемое значение всегда преобразовывается в кортеж. Такой запрос отработает корректно, если выбрано одно или несколько значений.

Пример запроса с оператором in
SELECT sum (Sales) as Sales, CategoryFROM samples.SampleLiteWHERE Category in {{category}} GROUP BY CategoryORDER BY Category

Если в тексте запроса перед параметром указан оператор =, запрос отработает корректно, только если будет выбрано одно значение.

Пример запроса с оператором =
SELECT sum (Sales) as Sales, CategoryFROM samples.SampleLiteWHERE Category = {{category}} GROUP BY CategoryORDER BY Category

Пустой выбор в селекторе и параметры

Если в селекторе не выбрано ни одного значения и для параметра не задано значение по умолчанию, то в запрос передается пустое значение. В чартах на основе датасета в этом случае выбираются все значения, а в генерации запроса фильтр по соответствующему столбцу пропадает.

Чтобы обеспечить аналогичное поведение в QL-чартах, можно использовать в запросе конструкцию вида:

ANDCASE    WHEN LENGTH({{param}}::VARCHAR)=0 THEN TRUE    ELSE column IN {{param}}END