Menu
Coddy logo textTech

Подзапросы. Часть 1

Часть раздела Основы путешествия по SQL на Coddy — урок 38 из 72.

Подзапросы позволяют нам объединять несколько запросов в один. Например, рассмотрим следующую таблицу <strong>employees</strong>:

idsalary
148
234
346
413
528

Нам нужен подзапрос, потому что мы не можем использовать WHERE salary > AVG(salary) напрямую, так как агрегатные функции, такие как AVG(), нельзя использовать в предложении WHERE — их можно использовать только после того, как данные были сгруппированы.

SELECT id, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

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

Поскольку среднее значение равно: (48 + 34 + 46 + 13 + 28) / 5 = 33.8, это результат запроса:

idsalary
148
234
346
challenge icon

Задание

Легко

Доступные таблицы и столбцы:

  • <strong>shop</strong>: <strong>price</strong>, <strong>quantity</strong>, <strong>category</strong>, <strong>list_date</strong>

Напишите запрос, чтобы найти все товары (выберите все столбцы), где цена выше средней цены всех товаров.

Используйте подзапрос в предложение WHERE для вычисления средней цены, затем сравните цену каждого товара с этой средней ценой.

Попробуйте сами

quiz iconПроверьте себя

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

Все уроки раздела Основы