Skip to content

Instantly share code, notes, and snippets.

@Helen460
Created April 19, 2025 19:07
Show Gist options
  • Save Helen460/f9dc7a6faf8194fadf4a64d3c2c1a376 to your computer and use it in GitHub Desktop.
Save Helen460/f9dc7a6faf8194fadf4a64d3c2c1a376 to your computer and use it in GitHub Desktop.
8-DZ
-- 1. Вивести кількість товарів кожної категорії, середня ціна поставки яких більше 100 гривень.
SELECT c.name AS [Категорія], COUNT(DISTINCT p.id) AS [Кількість товарів]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Delivery d ON p.id = d.id_product
GROUP BY c.name
HAVING AVG(d.price) > 100;
-- 2. Показати категорії "Фрукти" та "Цукерки", їхні товари та загальну суму їх продажу.
SELECT c.name AS [Категорія], p.name AS [Товар], SUM(s.price) AS [Загальна сума продажу]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Sale s ON p.id = s.id_product
WHERE c.name IN ('Фрукти', 'Цукерки')
GROUP BY c.name, p.name;
-- 3. Показати інформацію про виробника, його повну адресу та кількість товарів, які він випускає.
-- Загальна вартість продажу товарів кожного виробника при цьому повинна бути від 500 до 2000 гривень.
SELECT pr.name AS [Виробник],
a.street AS [Вулиця],
c.name AS [Місто],
r.name AS [Регіон],
co.name AS [Країна],
COUNT(p.name) AS [Кількість товарів]
FROM Product p
JOIN Producer pr ON p.id_producer = pr.id
JOIN Address a ON pr.id_address = a.id
JOIN City c ON a.id_city = c.id
JOIN Region r ON c.id_region = r.id
JOIN Country co ON r.id_country = co.id
JOIN Sale s ON p.id = s.id_product
GROUP BY pr.name, a.street, c.name, r.name, co.name
HAVING SUM(s.price) BETWEEN 500 AND 2000;
-- 4. Показати категорію товарів, яких в магазині найменше.
SELECT TOP 1 c.name AS [Категорія], COUNT(p.id) AS [Кількість товарів]
FROM Product p
JOIN Category c ON p.id_category = c.id
GROUP BY c.name
ORDER BY COUNT(p.id)
-- 5. Показати кількість товарів кожної категорії, при цьому враховуючи тільки ті товари, ціна поставки яких перевищує 400 гривень.
-- Умова: виведена інформація стосується тільки трьох визначених постачальників. тут також треба зробити в стилі викладача ось його запити SELECT p.name, c.name
SELECT c.name AS [Категорія], COUNT(DISTINCT p.id) AS [Кількість товарів]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Delivery d ON p.id = d.id_product
WHERE d.price > 400
AND d.id_supplier IN (1, 2, 3)
GROUP BY c.name;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment