Подзапросы — мощный инструмент SQL, позволяющий включать результаты одного запроса в другой, что делает анализ данных гибким и производительным.
1. Вложенные подзапросы: когда один запрос внутри другого Чтобы отфильтровать пользователей, у которых баланс выше среднего, используем подзапрос:
SELECT user_id, balance
FROM users
WHERE balance > (SELECT AVG(balance) FROM users);
2. Коррелированные подзапросы: доступ к внешним данным, коррелированный подзапрос связан с внешним запросом и работает для каждой строки:
SELECT name
FROM employees e1
WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE e1.department = e2.department);
3. Подзапросы с оператором EXISTS: проверка наличия данных EXISTS часто используется, чтобы проверить наличие связанных данных:
SELECT customer_name
FROM customers c
WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id);