В этом уроке я покажу, что такое подзапросы в DataLens, как их подключить и где можно использовать.
А вы знаете, что в DataLens существуют еще подзапросы? И что с их помощью можно организовать дополнительную фильтрацию данных еще на этапе датасетов? Если нет, то давайте посмотрим, что же это такое. Но для начала разберемся с общим поднятием подзапросов.
Что такое подзапросы SQL?
Подзапросы в SQL – это запросы, которые содержатся в предложении WHERE или HAVING другого оператора SQL. Они используются для получения данных из двух и более таблиц и для возвращения данных, которые будут использоваться в основном запросе в качестве условия для ограничения получаемых данных.
Типы вложенных запросов:
- Вложенный запрос, возвращающий одно значение.
- Вложенный запрос, возвращающий несколько значений.
- Соотнесённый (коррелирующий) подзапрос.
Обработка вложенных запросов:
- Простые вложенные подзапросы обрабатываются системой «снизу вверх».
- Коррелированные вложенные подзапросы обрабатываются системой в обратном порядке.
Особенности вложенных запросов:
- Вложенный запрос всегда заключается в круглые скобки.
- Таблица результатов вложенного запроса всегда состоит из одного столбца.
- Во вложенный запрос не может входить предложение ORDER BY.
- Вложенный запрос не может заканчиваться в функции.
Синтаксис вложенных запросов:
- Вложенный запрос, возвращающий одно значение: SELECT список_полей FROM имя_табл1 WHERE имя_поля1 = (SELECT имя_поля2 FROM имя_табл2 WHERE условие).
- Вложенный запрос, возвращающий несколько значений: SELECT список_полей FROM имя_табл1 WHERE имя_поля1 IN (SELECT имя_поля2 FROM имя_табл2 WHERE условие).
- Соотнесённый (коррелирующий) подзапрос: SELECT список_полей FROM имя_табл1 WHERE имя_поля1 IN (SELECT имя_поля2 FROM имя_табл2 WHERE имя_табл1.поле=имя_табл2.поле).
Словом, это запросы к таблицам баз данных. Поэтому, как уже очевидно, подзапросы используются для отбора данных только для баз данных, к которым у вас есть подключение (например, Clickhouse или PostgreSQL). Для других источников это уже работать не будет. Но чтобы такая опция вообще появилась, ее надо включить.
Как включить подзапросы в DataLens?
Это делается на этапе создания или редактирования подключения к БД. Достаточно просто выбрать соответствующую опцию.
![](https://biba.pro/wp-content/uploads/2024/05/image.png)
Как создать подзапрос в DataLens?
Ну а теперь давайте напишем SQL запрос к БД прямо в датасете. Создаем новый датасет, выбираем БД и просто нажимаем Добавить. У нас открывается окно для написания запросов к таблицам из выбранной базы данных.
![](https://biba.pro/wp-content/uploads/2024/05/image-1.png)
![](https://biba.pro/wp-content/uploads/2024/05/image-2.png)
Вот и все. Теперь вы можете организовать дополнительную фильтрацию данных еще на этапе датасета или, наоборот, консолидацию данных из разных таблиц.
Наши курсы
Более подробно, как это сделать, можно посмотреть тут.
Если вам понравился урок, то можете поддержать проект по кнопке ниже. Это очень поможет делать для вас больше интересных и полезных выпусков. Спасибо!
![](https://biba.pro/wp-content/plugins/dk-pricr-responsive-pricing-table/inc/img/rpt_recommended.png)
Задать вопросы и обсудить волнующие темы про аналитику данных теперь можно на нашем форуме.
Если вам понравился урок, подписывайтесь на канал или группу и ставьте лайки. А также пишите в комментариях свои кейсы или вопросы. Самые интересные мы обязательно разберем.