Решение задания 1
Фильтруем строки таблицы PC по цене.
SELECT model, speed, hd
FROM PC
WHERE price < 500;
WHERE и IN.JOIN Product ... USING (model).MIN/MAX.GROUP BY hd HAVING COUNT(model) >= 2.model1 > model2.Фильтруем строки таблицы PC по цене.
SELECT model, speed, hd
FROM PC
WHERE price < 500;
Выбираем уникальных производителей из Product, оставляя только принтеры.
SELECT DISTINCT maker
FROM Product
WHERE type = 'Printer';
Фильтруем ноутбуки по цене.
SELECT model, ram, screen
FROM Laptop
WHERE price > 1000;
Комбинируем два условия: цена и скорость CD.
SELECT model, speed, hd
FROM PC
WHERE price < 600
AND cd IN ('12x', '24x');
Соединяем Product и Laptop по модели и фильтруем ноутбуки по объёму диска.
SELECT DISTINCT maker, speed
FROM Product
JOIN Laptop USING (model)
WHERE hd >= 10;
Подзапрос находит максимальную цену принтера.
SELECT model, price
FROM Printer
WHERE price = (SELECT MAX(price) FROM Printer);
Группируем по размеру жёсткого диска и отбираем группы с двумя и более моделями.
SELECT hd
FROM PC
GROUP BY hd
HAVING COUNT(model) >= 2;
Самосоединение таблицы PC. Условие pc1.model > pc2.model исключает зеркальные пары.
SELECT DISTINCT pc1.model, pc2.model, pc1.speed, pc1.ram
FROM PC AS pc1
JOIN PC AS pc2
ON pc1.speed = pc2.speed
AND pc1.ram = pc2.ram
AND pc1.model > pc2.model;
Ноутбук медленнее любого ПК, если его скорость меньше минимальной скорости ПК.
SELECT DISTINCT type, model, speed
FROM Laptop
LEFT JOIN Product USING (model)
WHERE speed < (SELECT MIN(speed) FROM PC);
Соединяем Printer и Product, выбираем цветные принтеры с минимальной ценой.
SELECT DISTINCT maker, price
FROM Printer
JOIN Product USING (model)
WHERE price = (SELECT MIN(price) FROM Printer WHERE color = 'y')
AND color = 'y';
Средняя цена ПК каждого производителя.
SELECT maker, AVG(price) AS avg_price
FROM Product
JOIN PC USING (model)
WHERE type = 'PC'
GROUP BY maker;
Пары ПК и ноутбуков с одинаковой скоростью. Здесь зеркальных пар нет, потому что модели из разных таблиц.
SELECT DISTINCT pc.model AS pc_model, laptop.model AS laptop_model, pc.speed
FROM PC AS pc
JOIN Laptop AS laptop ON pc.speed = laptop.speed;
Производители, у которых есть и ПК, и ноутбуки.
SELECT DISTINCT p1.maker
FROM Product AS p1
JOIN Product AS p2 ON p1.maker = p2.maker
WHERE p1.type = 'PC'
AND p2.type = 'Laptop';