Цветные принтеры
Найдите все записи таблицы Printer для цветных принтеров.
SELECT *
FROM Printer
WHERE color = 'y';
Строковое значение 'y' заключаем в кавычки. Условие отбирает только цветные принтеры.
SELECT * FROM Printer WHERE color = 'y'.UNION ALL.NOT IN.JOIN.AVG(speed).GROUP BY.Все задачи выполняются на учебной схеме с таблицами Product, PC, Laptop и Printer.
Найдите все записи таблицы Printer для цветных принтеров.
SELECT *
FROM Printer
WHERE color = 'y';
Строковое значение 'y' заключаем в кавычки. Условие отбирает только цветные принтеры.
Найдите номера моделей и цены всех имеющихся в продаже продуктов (любого типа) производителя B.
SELECT DISTINCT model, price
FROM Product
JOIN (
SELECT model, price FROM PC
UNION ALL
SELECT model, price FROM Laptop
UNION ALL
SELECT model, price FROM Printer
) AS all_products USING(model)
WHERE maker = 'B';
Внутренний запрос собирает все модели и цены из трёх таблиц. UNION ALL сохраняет дубликаты, если одинаковая модель встречается в разных типах. DISTINCT убирает повторяющиеся пары (model, price) в итоговом результате.
Найдите производителя, выпускающего ПК, но не ПК-блокноты.
SELECT DISTINCT maker
FROM Product
WHERE type = 'PC'
AND maker NOT IN (
SELECT maker
FROM Product
WHERE type = 'Laptop'
);
Подзапрос возвращает производителей ноутбуков; NOT IN исключает их из списка производителей ПК.
Найдите производителей ПК с процессором не менее 450 МГц. Вывести: Maker.
SELECT DISTINCT maker
FROM PC
JOIN Product USING(model)
WHERE speed >= 450;
Соединяем PC и Product по полю model, фильтруем скорость процессора и оставляем уникальных производителей.
Найдите среднюю скорость ПК.
SELECT AVG(speed) AS avg_speed
FROM PC;
Агрегатная функция AVG() вычисляет среднее значение по столбцу speed.
Для каждого производителя, имеющего модели в таблице Laptop, найдите средний размер экрана выпускаемых им ПК-блокнотов. Вывести: maker, средний размер экрана.
SELECT maker, AVG(screen) AS avg_screen
FROM Laptop
JOIN Product USING(model)
GROUP BY maker;
Соединяем Laptop с Product, группируем по производителю и считаем средний размер экрана. В источнике использован вариант GROUP BY 1 — группировка по первому столбцу в SELECT.