[Документация Yandex Cloud](../../index.md) > [Практические руководства](../index.md) > [Анализ и визуализация данных](index.md) > DataLens > Функциональные > Примеры создания QL-чартов

# Примеры создания QL-чартов


{% note warning %}

Часть ресурсов, необходимых для прохождения практического руководства, доступны только в [регионе Россия](../../overview/concepts/region.md).

{% endnote %}



{% note info %}

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

{% cut "Создать папку" %}

1. Перейдите на [главную страницу](https://datalens.ru/?skipPromo=true) DataLens.
1. На панели слева выберите ![](../../_assets/console-icons/folders.svg) **Все объекты** или ![](../../_assets/console-icons/folder-house.svg) **Личная папка**.
1. В правом верхнем углу нажмите **Создать** → **Папку**.
1. Введите название папки.
1. Нажмите кнопку **Создать**.

{% endcut %}

{% endnote %}


В этом руководстве вы создадите чарты на основе SQL-запросов. SQL-запросы позволяют гибче настраивать данные для визуализации, чем стандартный способ — через датасет. Например, в SQL-запрос вы можете добавить параметры с дашбордов.

Рекомендуем использовать [QL-чарт](../../datalens/concepts/chart/ql-charts.md) в случае, если создание обычного [чарта](../../datalens/concepts/chart/dataset-based-charts.md) с помощью датасета вам не подходит или вы хотите поэкспериментировать с данными.

В качестве источника данных будет использоваться прямое подключения к демонстрационной БД. 


Для визуализации и исследования данных [подготовьте DataLens к работе](#before-you-begin), затем выполните следующие шаги:


1. [Создайте воркбук](#create-workbook).
1. [Создайте подключение](#create-connection).
1. [Создайте QL-чарт](#create-sql-chart).
1. [Создайте дашборд](#create-dashboard).
1. [Добавьте QL-чарт на дашборд](#add-sql-chart-to-dashboard).
1. [Добавьте селекторы на дашборд](#add-selectors-to-dashboard).

{% note warning %}

SQL-запросы работают только с базами данных. File, GoogleSheets, Яндекс Метрика и другие сервисные подключения не поддерживают SQL-запросы.

{% endnote %}


## Перед началом работы {#before-you-begin}

Чтобы начать работать с DataLens:


{% list tabs group=datalens_user %}

- Новый пользователь {#new}

  1. [Войдите](https://passport.yandex.ru/auth) в ваш аккаунт на Яндексе. Если у вас еще нет аккаунта, [создайте](https://yandex.ru/support/passport/authorization/registration.html) его.
  1. Откройте [главную страницу](https://datalens.ru/promo) DataLens.
  1. Нажмите **Начать в облаке**.
  1. Подтвердите, что ознакомились с [Условиями использования](https://yandex.ru/legal/cloud_termsofuse/?lang=ru) и принимаете их и нажмите кнопку **Войти**.

- Уже использую Yandex Cloud {#already}

  1. [Войдите](https://passport.yandex.ru/auth) в ваш аккаунт на Яндексе.
  1. Откройте [главную страницу](https://datalens.ru/promo) DataLens.
  1. Нажмите **Начать в облаке**.
  1. Выберите один из вариантов:

     * Если у вас уже есть организация, выберите ее в выпадающем меню на вкладке **Организации** и нажмите **DataLens**.

       {% note info %}

       Для активации экземпляра DataLens пользователю нужна роль `admin` или `owner`. Подробнее про роли смотрите в разделе [Управление доступом в Yandex Identity Hub](../../organization/security/index.md).

       {% endnote %}

     * Если у вас есть облако, но нет организации, нажмите **Добавить новый DataLens**. В открывшемся окне введите название и описание организации и нажмите **Создать организацию и DataLens**. Подробнее о работе с организациями смотрите в разделе [Начало работы с организациями](../../organization/quickstart.md).

{% endlist %}

Если у вас возник технический вопрос по работе сервиса, обратитесь в [службу поддержки](https://kz.center.yandex.cloud/support) Yandex Cloud. Чтобы спросить совета, обсудить решение вашей задачи или лучшие практики работы сервиса, напишите в чат [DataLens](https://t.me/YandexDataLens) в Telegram.

## Создайте воркбук {#create-workbook}

1. Перейдите на [главную страницу](https://datalens.ru/?skipPromo=true) DataLens.
1. На панели слева выберите ![collections](../../_assets/console-icons/rectangles-4.svg) **Коллекции и воркбуки**.
1. В правом верхнем углу нажмите **Создать** → **Создать воркбук**.
1. Введите название [воркбука](../../datalens/workbooks-collections/index.md) — `Практические руководства`.
1. Нажмите кнопку **Создать**.


## Создайте подключение {#create-connection}

Для доступа к базе данных будет создано подключение **Sample ClickHouse**.

1. В правом верхнем углу воркбука нажмите **Создать** → ![image](../../_assets/console-icons/thunderbolt.svg) **Подключение**.



1. В разделе **Базы данных** выберите подключение **ClickHouse®**.

   1. В открывшемся окне выберите тип подключения `Указать вручную` и укажите параметры подключения:

   
      * Имя хоста — `rc1a-ckg8nrosr2lim5iz.mdb.yandexcloud.net`.
      * Порт HTTP-интерфейса — `8443` (по умолчанию).
      * Имя пользователя — `samples_ro`.
      * Пароль — `MsgfcjEhJk`.

   1. Включите опцию **SQL на чтение**.
   1. Нажмите кнопку **Проверить подключение** и убедитесь, что появился зеленый значок.
   1. Нажмите кнопку **Создать подключение**.
   1. Введите название подключения — `Sample ClickHouse`.
   1. Нажмите кнопку **Создать**.





Дождитесь сохранения подключения.

## Создайте QL-чарт {#create-sql-chart}

Создайте QL-чарт на базе подключения `Sample ClickHouse`:

1. На странице подключения в правом верхнем углу нажмите кнопку **Создать датасет**.

   {% note info %}

   Убедитесь, что в подключении активирована настройка **Уровень доступа SQL-запросов** → **SQL на чтение**.

   {% endnote %}

1. В правом верхнем углу нажмите **Создать QL-чарт**.
1. На вкладке **Запрос** введите текст запроса:

   ```sql
   SELECT 
      toDate(t1.OrderDatetime) as "Дата",
      COUNT(t1.ClientID) as "Число новых клиентов", t3.ClientStatus as "Статус"
   FROM
      samples.MS_SalesFacts t1,
      (SELECT 
	      ClientID, 
         MIN(OrderDatetime) as FirstDate
      FROM samples.MS_SalesFacts
      GROUP BY ClientID) as t2,
         samples.MS_Clients t3
   WHERE not_var{{interval_from}} < "Дата" and "Дата" < not_var{{interval_to}} and t1.ClientID=t2.ClientID and t3.ClientID=t2.ClientID and t3.ClientStatus in not_var{{status}} -- status, interval_from и interval_to - переменные, связанные с параметрами, на которые влияют селекторы
   GROUP BY "Статус", "Дата"
   ORDER BY "Дата"
   ```

1. На вкладке **Параметры** нажмите **Добавить параметр** и заполните поля ввода:

   * Из выпадающего списка выберите `string` (по умолчанию).
   * В поле **Имя** введите `status`.
   * В поле **Значение по умолчанию** введите `Золотой`.
   * Ниже нажмите **Добавить значение** и введите `Серебряный`.
   * Ниже нажмите **Добавить значение** и введите `Базовый`.

     ![sql-chart-parameter](../../_assets/datalens/sql-chart/sql-chart-parameter.png)

   Добавленный параметр будет связан с переменной `not_var{{status}}` в запросе.

1. Нажмите **Добавить параметр** и заполните поля ввода:

   * Из выпадающего списка выберите `date-interval`.
   * В поле **Имя** введите `interval`.
   * Нажмите на поле со значением периода и в открывшемся окне укажите:

     * **Начало:** `01.03.2017`;
     * **Конец:** `31.03.2017`.

       ![sql-chart-parameter-data2](../../_assets/datalens/sql-chart/sql-chart-parameter-data2.png)

     * Нажмите **Применить**.

     Значения **Начало:** и **Конец:** добавленного параметра будут связаны соответственно с переменными `not_var{{interval_from}}` и `not_var{{interval_to}}` в SQL-запросе.

     {% note info %}
   
     Значениями параметров можно управлять при помощи селекторов на дашборде.

     {% endnote %}

1. Вернитесь на вкладку **Запрос**. В левом нижнем углу нажмите кнопку **Запустить**. После выполнения запроса появится визуализация в правом окне.

   ![sql-chart-diagram](../../_assets/datalens/sql-chart/sql-chart-diagram.png)

1. Настройте визуализацию:

   * Убедитесь, что в секции **X** находится поле `Дата`, иначе перетащите его из раздела **Доступные**.
   * Убедитесь, что в секции **Y** находится поле `Число новых клиентов`, иначе перетащите его из раздела **Доступные**.
   * Добавьте на график цветовое разделение клиентов по статусу. Для этого из секции **Доступные** перетащите поле `Статус` в секцию **Цвета**.

     ![sql-chart-rezult](../../_assets/datalens/sql-chart/sql-chart-rezult.png)

1. Сохраните чарт:

   1. В правом верхнем углу нажмите кнопку **Сохранить**.
   1. В открывшемся окне введите название чарта `Новые клиенты` и нажмите кнопку **Сохранить**.

Можете разместить созданный чарт на дашборде. Также на дашборд можно добавить селекторы для управления значениями параметров `status` и `interval` QL-чарта.

## Создайте дашборд {#create-dashboard}

Создайте [дашборд](../../datalens/concepts/dashboard.md), на который будут добавлены чарты и другие виджеты:


1. На панели слева выберите ![collections](../../_assets/console-icons/rectangles-4.svg) **Коллекции и воркбуки** и перейдите в воркбук `Практические руководства`.
1. В правом верхнем углу нажмите **Создать** → ![image](../../_assets/console-icons/layout-cells-large.svg) **Дашборд**.



## Добавьте QL-чарт на дашборд {#add-sql-chart-to-dashboard}

1. На панели в нижней части страницы зажмите ![image](../../_assets/console-icons/chart-column.svg) **Чарт** и перетащите его в нужную область.

   ![add-chart](../../_assets/datalens/sql-chart/add-chart.png)

1. В открывшемся окне нажмите кнопку **Выбрать**.
1. Выберите чарт `Новые клиенты`.

   ![image](../../_assets/datalens/sql-chart/select-chart.png)

1. Нажмите кнопку **Добавить**.
1. Установите размер чарта с помощью мыши и расположите его на дашборде в удобном для вас месте.

   ![image](../../_assets/datalens/sql-chart/add-chart-on-dashboard.png)

## Добавьте селекторы на дашборд {#add-selectors-to-dashboard}

Добавьте [селекторы](../../datalens/dashboard/selector.md), чтобы фильтровать чарты по дате и статусам клиентов:

1. На панели в нижней части страницы зажмите ![image](../../_assets/console-icons/sliders.svg)  **Селектор** и перетащите его в нужную область.

   ![image](../../_assets/datalens/sql-chart/add-selector.png)

1. Добавьте селектор по статусам клиентов:

   1. В списке **Источник** выберите `Ручной ввод`.
   1. В **Поле или параметр** введите `status`. В эту переменную SQL-запроса будут передаваться выбранные значения из селектора.
   1. Выберите тип селектора `Список`.   
   1. Включите опцию **Множественный выбор**.
   1. Рядом с параметром **Возможные значения** нажмите кнопку **Добавить**. В открывшемся окне добавьте значения:

      * Золотой
      * Серебряный
      * Базовый

      ![image](../../_assets/datalens/sql-chart/add-selector-values.png)

      Нажмите кнопку **Применить**.

   1. В списке **Значение по умолчанию** укажите **Выбрать всё**.

      ![image](../../_assets/datalens/sql-chart/add-selector-select-all.png)

   1. В поле **Заголовок** введите `Выберите статус клиента`.
   1. Нажмите кнопку **Сохранить**.

      ![image](../../_assets/datalens/sql-chart/add-selector-parameters.png)

1. Добавьте селектор с календарем для фильтрации по диапазону дат:

   1. В списке **Источник** выберите `Ручной ввод`.
   1. В **Поле или параметр** введите `interval`. В переменные `not_var{{interval_from}}` и `not_var{{interval_to}}` SQL-запроса будут передаваться значения начала и конца диапазона из селектора.
   1. Выберите тип селектора `Календарь`.
   1. Включите опцию **Диапазон**.
   1. В поле **Заголовок** введите `Период заказов`.
   1. Нажмите кнопку **Сохранить**.

      ![image](../../_assets/datalens/sql-chart/add-selector-data-parameters.png)

1. Расположите селекторы на дашборде в удобном для вас порядке.
1. Сохраните дашборд:

   1. В правом верхнем углу дашборда нажмите кнопку **Сохранить**.
   1. Введите название дашборда `Динамика количества клиентов по годам` и нажмите кнопку **Создать**.

Дашборд готов.

   ![image](../../_assets/datalens/sql-chart/add-selector-on-dashboard.png)

1. Дашборд готов. Теперь можно фильтровать чарт по статусу с использованием селектора.
   
   ![image](../../_assets/datalens/sql-chart/selector-2-values.png)

   Также можно фильтровать чарт по диапазону дат с использованием второго селектора.

   ![image](../../_assets/datalens/sql-chart/selector-data-2-values.png)

#### Полезные ссылки {#see-also}

- [Добавление чарта на дашборд в Yandex DataLens](../../datalens/operations/dashboard/add-chart.md)
- [Добавление селектора на дашборд в Yandex DataLens](../../datalens/operations/dashboard/add-selector.md)
- [Создание QL-чарта в Yandex DataLens](../../datalens/operations/chart/create-sql-chart.md)
- [QL-чарты](../../datalens/concepts/chart/index.md#sql-charts)