Создание QL-чарта
Для QL-чартов доступны те же общие настройки и настройки секций, что и для чартов на основе датасета. Для полей чарта доступны только некоторые настройки показателей.
Чтобы создать QL-чарт:
- Перейдите к уже созданному подключению БД.
- Убедитесь, что в подключении активирована настройка Уровень доступа SQL-запросов → Разрешить подзапросы в датасетах и запросы из чартов.
- В правом верхнем углу нажмите Создать QL-чарт.
- На вкладке Запрос укажите запрос, используя SQL-диалект БД, к которой вы обращаетесь.
- В левом нижнем углу нажмите кнопку Запустить.
После выполнения запроса появится визуализация на основе ваших данных.
Пример запроса для БД ClickHouse®
SELECT Category, Month, ROUND(SUM(Sales))
FROM samples.SampleLite
WHERE Category in {{category}} -- переменная, используемая в селекторе
GROUP BY Category, Month -- группировка по категории и месяцу
ORDER BY Category, Month -- сортировка по категории и месяцу
Добавление параметров селектора
Для QL-чартов в области редактирования чарта на вкладке Параметры можно управлять параметрами селектора, а на вкладке Запрос указывать переменную в самом запросе в формате {{variable}}
.
Чтобы добавить параметр:
-
Перейдите на вкладку Параметры при создании чарта.
-
Нажмите Добавить параметр.
-
Установите тип значения для параметра. Например,
date-interval
. -
Задайте имя параметру. Например,
interval
. -
Установите значения по умолчания. Например,
2017-01-01 — 2019-12-31
.Для параметров типа
date
,datetime
,date-interval
иdatetime-interval
значения можно указать несколькими способами:- Точная дата — чтобы указать точное значение.
- Смещение от текущей даты — чтобы указать относительное значение, которое будет обновляться автоматически.
Для быстрого заполнения значений используйте пресеты.
Чтобы управлять значениями параметра на дашборде, создайте селектор с ручным вводом и в поле Имя поля или параметра укажите имя параметра.
Интервалы
Параметры типа 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.SampleLite
WHERE {{interval_from}} < datedate AND datedate < {{interval_to}}
GROUP BY datedate
ORDER BY datedate
Подстановка параметра в запрос QL-чарта
Значения для параметра из селектора в QL-чарт приходят в виде:
- единичного значения — если выбран один элемент;
- кортежа (tuple) — если выбрано несколько элементов.
Если в тексте запроса перед параметром указан оператор in
, то подставляемое значение всегда преобразовывается в кортеж. Такой запрос отработает корректно, если выбрано одно или несколько значений.
Пример запроса с оператором in
SELECT sum (Sales) as Sales, Category
FROM samples.SampleLite
WHERE Category in {{category}}
GROUP BY Category
ORDER BY Category
Если в тексте запроса перед параметром указан оператор =
, запрос отработает корректно, только если будет выбрано одно значение.
Пример запроса с оператором =
SELECT sum (Sales) as Sales, Category
FROM samples.SampleLite
WHERE Category = {{category}}
GROUP BY Category
ORDER BY Category
Пустой выбор в селекторе и параметры
Если в селекторе не выбрано ни одного значения и для параметра не задано значение по умолчанию, то в запрос передается пустое значение. В чартах на основе датасета в этом случае выбираются все значения, а в генерации запроса фильтр по соответствующему столбцу пропадает.
Чтобы обеспечить аналогичное поведение в QL-чартах, можно использовать в запросе конструкцию вида:
AND
CASE
WHEN LENGTH({{param}}::VARCHAR)=0 THEN TRUE
ELSE column IN {{param}}
END
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.