Menu
Coddy logo textTech

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

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

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

idзарплата
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, вот результат запроса:

idзарплата
148
234
346
challenge icon

Задание

Легко

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

  • shop: price, quantity, category, list_date

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

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

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

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

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

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

Потренируйтесь самостоятельно: Песочница SQL