Skip to content

Instantly share code, notes, and snippets.

@Makc082
Created April 21, 2025 10:48
Show Gist options
  • Save Makc082/45efbd6df3168090543c8c454396e9d2 to your computer and use it in GitHub Desktop.
Save Makc082/45efbd6df3168090543c8c454396e9d2 to your computer and use it in GitHub Desktop.
--1. Вивести кількість товарів кожної категорії, середня ціна поставки яких більше 100 гривень.
SELECT p.quantity AS [кількість товарів],
c.name AS [категорії товарів ]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Delivery d ON d.id_product = p.id
GROUP BY c.name, p.quantity
HAVING AVG(d.price) > 100
--2. Показати категорії "Фрукти" та "Цукерки", їхні товари та загальну суму їх продажу.
SELECT c.name AS [категорії товарів],
p.name AS [назва товару],
p.price * s.quantity AS [загальна сума продажу]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Sale s ON s.id_product = p.id
GROUP BY c.name, p.name, p.price * s.quantity
HAVING c.name IN ('Фрукти', 'Овочі')
--3. Показати інформацію про виробника, його повну адресу та кількість товарів, які він випускає.
--Загальна вартість продажу товарів кожного виробника при цьому повинна бути від 500 до 2000 гривень.
SELECT pr.name AS [виробник],
a.street + ', ' +
c.name + ', ' +
r.name + ', ' +
cn.name AS [адреса виробника],
p.quantity AS [кількість товарів],
SUM(s.price * s.quantity) 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 cn ON r.id_country = cn.id
JOIN Sale s ON s.id_product = p.id
GROUP BY pr.name, a.street, c.name, r.name, cn.name, p.quantity
HAVING SUM(s.price * s.quantity) BETWEEN 500 AND 2000
--4. Показати категорію товарів, яких в магазині найменше.
SELECT TOP 1
c.name AS [категорія],
SUM(p.quantity) AS [кількість товарів]
FROM Product p
JOIN Category c ON p.id_category = c.id
GROUP BY c.name
ORDER BY SUM(p.quantity) ASC;
--5. Показати кількість товарів кожної категорії, при цьому враховуючи тільки ті товари, ціна поставки яких перевищує 400 гривень.
--Умова: виведена інформація стосується тільки трьох визначених постачальників.
SELECT p.quantity AS [кількість товарів],
c.name AS [категорія]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Delivery d ON d.id_product = p.id
JOIN Supplier s ON d.id_supplier = s.id
GROUP BY p.quantity, s.name, d.price, c.name
HAVING d.price > 400 AND s.name IN ('Швидко', 'Біжубіжу', 'Картофка')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment