Подзапрос в SQL для пользователей LuckyTemplates

В этом руководстве мы узнаем и поймем, как мы можем использовать подзапрос в SQL. Подзапрос — это запрос внутри другого запроса. Мы также можем назвать это вложенным запросом в более крупный запрос. Он должен быть заключен в квадратную скобку и в основном использоваться в предложении WHERE .

Подзапрос в SQL для пользователей LuckyTemplates

Мы можем использовать подзапросы в SQL, когда нам нужно получить данные из нескольких таблиц.

Например, допустим, у нас есть эти 2 таблицы. 

Подзапрос в SQL для пользователей LuckyTemplates

Это проблема, которую нам нужно решить. Нам нужно получить имя клиента, идентификатор электронной почты и адрес клиентов, которые купили в 2022 году. Это невозможно, используя только таблицу « Клиенты» , потому что в этой таблице нет записей о продажах или столбце даты заказа. У нас есть другие способы решить эту проблему.

Подзапрос в SQL для пользователей LuckyTemplates

Оглавление

Получение данных вручную с помощью нескольких отдельных запросов

Во-первых, поскольку у нас есть CustomerId из таблицы « Продажи », мы можем получить идентификаторы клиентов, совершивших покупки в 2022 году, из столбца «Дата заказа» в таблице «Продажи ». 

Подзапрос в SQL для пользователей LuckyTemplates

Предполагая, что теперь у нас есть идентификаторы клиентов ( 1, 3, 5, 7, 8, 9… ) людей, которые покупали с 2022 года, мы можем затем создать еще один запрос, чтобы получить информацию об этих клиентах через таблицу « Клиенты» на основе их ID .

Подзапрос в SQL для пользователей LuckyTemplates

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

Автоматическое получение данных через подзапрос в SQL

Вместо того, чтобы вручную вводить их идентификаторы, мы можем сделать это автоматически, используя подзапрос в SQL . Мы можем использовать его вместе с условием IN для автоматического получения идентификатора клиента или любых других данных, которые нам нужны для решения определенной проблемы. 

Это пример того, что мы можем сделать для решения проблемы. В этом примере запроса мы выбираем имя, адрес и идентификатор электронной почты клиентов из таблицы «Клиенты» на основе их идентификатора клиента, полученного из вложенного запроса. В этом вложенном запросе идентификатор клиента поступает из таблицы «Продажи» с датой заказа 2022 года.

Подзапрос в SQL для пользователей LuckyTemplates

С помощью этого метода нам не нужно вручную вводить идентификатор клиента для людей, совершивших покупки с 2022 года. Он будет автоматически получен из созданного нами вложенного запроса. 

Пример сценария подзапроса через SQL Server Management Studio

Теперь у нас будет аналогичный сценарий, и на этот раз давайте сделаем это в среде SQL Server Management Studio ( SSMS ). В этом примере у нас есть две другие таблицы SalesOrderHeader и SalesTerritory

Подзапрос в SQL для пользователей LuckyTemplates

Наша цель — получить всю информацию о SalesOrderHeader из региона страны США . В SalesOrderHeader у нас нет столбца региона страны. 

Подзапрос в SQL для пользователей LuckyTemplates

Однако мы можем использовать столбец TerritoryID , который также доступен в таблице SalesTerritory . Здесь мы также можем получить информацию о регионе страны, которая находится в столбце CountryRegionCode .

Подзапрос в SQL для пользователей LuckyTemplates

Подзапрос в SQL для пользователей LuckyTemplates

Опять же, мы можем сделать это вручную, сначала получив TerritoryID из таблицы SalesTerritory с регионом страны США

Подзапрос в SQL для пользователей LuckyTemplates

Затем у нас будет список TerritoryID в регионе страны США .

Подзапрос в SQL для пользователей LuckyTemplates

После этого мы можем использовать эти идентификаторы для получения желаемого результата, вручную введя их в наш запрос.

Подзапрос в SQL для пользователей LuckyTemplates

Подзапрос в SQL для пользователей LuckyTemplates

Но вместо того, чтобы вручную вводить идентификаторы, мы можем легко сделать это с помощью подзапроса. Нам просто нужно заменить его нашим первым запросом, где мы получаем TerritoryID в таблице SalesTerritory с регионом страны США. 

Подзапрос в SQL для пользователей LuckyTemplates

Это даст нам тот же результат, что и ручной процесс. 

Подзапрос в SQL для пользователей LuckyTemplates

Заключение

Подводя итог, мы узнали об использовании и важности подзапроса в SQL. Мы также обсудили правильный синтаксис для создания определенных подзапросов. Мы, безусловно, можем создать несколько запросов, чтобы создать ручной процесс получения определенного результата. Однако вместо этого мы можем использовать подзапрос с предложением WHERE и условием IN для автоматического извлечения определенных данных из другой таблицы.

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

Всего наилучшего,

Хафиз

Загрузка и установка SQL Server
SQL для пользователей LuckyTemplates — новый курс LuckyTemplates
Запрос данных из нескольких источников данных

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

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

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.