SELECT 
    Customers.name        AS "Покупатель",
    Orders.id             AS "Заказ",
    Orders.order_date     AS "Дата заказа",
    SUM(Materials.price * Specifications.quantity * Order_items.quantity) AS "Полная стоимость заказа"
FROM Customers
JOIN Orders        ON Orders.customer_id        = Customers.id
JOIN Order_items   ON Order_items.order_id       = Orders.id
JOIN Products      ON Products.id                = Order_items.product_id
JOIN Specifications ON Specifications.product_id = Products.id
JOIN Materials     ON Materials.id               = Specifications.material_id
WHERE Customers.buyer = TRUE
GROUP BY Customers.name, Orders.id, Orders.order_date;

Понял! Вот шпаргалка по основным типам SQL-запросов:

---

**1. Простая выборка**
```sql
SELECT name, price FROM Materials
WHERE price > 100
ORDER BY price DESC;
```

---

**2. Агрегация (COUNT, SUM, AVG, MIN, MAX)**
```sql
SELECT customer_id, COUNT(*) AS кол_заказов, SUM(quantity) AS итого
FROM Orders
JOIN Order_items ON Order_items.order_id = Orders.id
GROUP BY customer_id
HAVING COUNT(*) > 1;
```

---

**3. JOIN — несколько таблиц**
```sql
-- INNER JOIN — только совпадающие записи
SELECT Customers.name, Orders.id
FROM Customers
JOIN Orders ON Orders.customer_id = Customers.id;

-- LEFT JOIN — все из левой, даже без совпадений
SELECT Customers.name, Orders.id
FROM Customers
LEFT JOIN Orders ON Orders.customer_id = Customers.id;
```

---

**4. Подзапрос**
```sql
-- Покупатели у которых есть заказы
SELECT name FROM Customers
WHERE id IN (SELECT customer_id FROM Orders);

-- Материалы дороже среднего
SELECT name, price FROM Materials
WHERE price > (SELECT AVG(price) FROM Materials);
```

---

**5. Фильтрация по условиям**
```sql
-- Несколько условий
WHERE buyer = TRUE AND inn IS NOT NULL

-- Поиск по шаблону
WHERE name LIKE 'ООО%'

-- Диапазон
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31'

-- Список значений
WHERE id IN ('000000001', '000000003')
```

---

**6. Обновление и удаление**
```sql
UPDATE Materials SET price = 180.00 WHERE id = 1;

DELETE FROM Orders WHERE order_date < '2023-01-01';
```

---

Сохрани себе — на экзамене пригодится под любое задание 👍