← К оглавлению занятия

💻 Примеры

⚡ Кратко: примеры

  • Сортировка и пагинация: ORDER BY, LIMIT, OFFSET.
  • Агрегаты: COUNT, SUM, AVG, MIN, MAX.
  • Группировка с HAVING.
  • Соединения JOIN и объединение UNION ALL.

Сортировка и ограничение выборки

Сортировка по убыванию цены

SELECT model, price
FROM Laptop
ORDER BY price DESC;

Топ-5 самых дорогих ПК

SELECT model, price
FROM PC
ORDER BY price DESC
LIMIT 5;

Постраничный вывод: страница 2 по 10 записей

SELECT model, price
FROM PC
ORDER BY model
LIMIT 10 OFFSET 10;

Агрегирующие функции

Количество ПК

SELECT COUNT(*) AS pc_count
FROM PC;

Средняя скорость ПК

SELECT AVG(speed) AS avg_speed
FROM PC;

Минимальная и максимальная цена ноутбуков

SELECT MIN(price) AS min_price, MAX(price) AS max_price
FROM Laptop;

GROUP BY и HAVING

Количество моделей каждого производителя

SELECT maker, COUNT(*) AS model_count
FROM Product
GROUP BY maker;

Производители со средней скоростью ПК не менее 500

SELECT maker, AVG(speed) AS avg_speed
FROM PC JOIN Product USING(model)
GROUP BY maker
HAVING AVG(speed) >= 500;

JOIN

Модели ПК с производителем

SELECT maker, model, speed, ram
FROM PC
JOIN Product USING(model);

Все продукты производителя A с ценами

SELECT p.maker, p.type, p.model, COALESCE(pc.price, l.price, pr.price) AS price
FROM Product p
LEFT JOIN PC pc ON p.model = pc.model
LEFT JOIN Laptop l ON p.model = l.model
LEFT JOIN Printer pr ON p.model = pr.model
WHERE p.maker = 'A';

UNION и UNION ALL

Все модели и цены продуктов

SELECT model, price FROM PC
UNION ALL
SELECT model, price FROM Laptop
UNION ALL
SELECT model, price FROM Printer;

Производители, выпускающие ПК или ноутбуки (без дубликатов)

SELECT maker FROM Product WHERE type = 'PC'
UNION
SELECT maker FROM Product WHERE type = 'Laptop';