Menu
Coddy logo textTech

Повторение - Запросы WITH

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

challenge icon

Задание

Легко

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

  • <b>devices_specs</b>: <b>device_id</b>, <b>width</b>, <b>height</b>, <b>num_features</b>, <b>opinion</b>
  • <b>devices_score</b>: <b>device_id</b>, <b>score</b>

Качество устройства измеряется как (width/height)*num_features.

Мы хотим найти все переоценённые устройства. Получите все устройства, у которых opinion устройства больше, чем average качество, а score устройства меньше, чем average качество. Верните только device_id.

Чтобы решить эту задачу, используйте предложение WITH для создания подзапроса, который вычисляет average качество, и используйте его повторно в основном запросе.

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

-- Шаг 1: назовите временный набор результатов, который содержит одно среднее значение
WITH avg_quality AS (
    SELECT ____ AS avg_q
    FROM devices_specs
)
-- Шаг 2: объедините две таблицы устройств, затем присоедините временный набор результатов
SELECT dsp.device_id
FROM devices_specs dsp
INNER JOIN devices_score dsc ON ____
INNER JOIN avg_quality aq
-- Шаг 3: оставьте устройства, которые находятся по разные стороны от этого среднего
WHERE ____

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

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