Skip to content

Instantly share code, notes, and snippets.

@ViktorLychkatyi
Created February 20, 2025 11:41
Show Gist options
  • Save ViktorLychkatyi/608a46115ca6008ac0628740e9772941 to your computer and use it in GitHub Desktop.
Save ViktorLychkatyi/608a46115ca6008ac0628740e9772941 to your computer and use it in GitHub Desktop.
Group
--1. Показать товары, средняя цена продажи которых была больше 50 гривен
--SELECT
--p.name AS Товары,
--SUM(s.price) AS Цена
--FROM Product p
--JOIN Sale s ON s.id_product = p.id
--GROUP BY p.name
--HAVING AVG(s.price) > 50
--2. Вывести количество товаров каждой категории, средняя цена поставки которых больше 100 гривен
--SELECT
--COUNT(p.name) AS [Количество товаров],
--c.name AS Категория,
--SUM(d.price) AS Цена
--FROM Category c
--JOIN Product p ON p.id_category = c.id
--JOIN Delivery d ON d.id_product = p.id
--GROUP BY c.name
--HAVING AVG(d.price) > 100
--3. Показать категории "Фрукты" и "Конфеты", принадлежащие им товары, и общую сумму их продажи
--SELECT
--p.name AS Товар,
--c.name AS Категория,
--SUM(s.price * s.quantity) AS [Общая сумма продажи]
--FROM Category c
--JOIN Product p ON p.id_category = c.id
--JOIN Sale s ON s.id_product = p.id
--GROUP BY p.name, c.name
--HAVING c.name IN ('Фрукты', 'Овощи')
--4. Показать информацию о производителе, его полном адресе, и количестве товаров, которые он выпускает.
--Общая стоимость продаж товаров каждого производителя при этом должна быть от 5000 до 2000 гривен
--SELECT
--pr.name AS Производитель,
--CONCAT(co.name, ', ', ct.name, ', ', a.street) AS Адрес,
--COUNT(p.name) AS Товар,
--c.name 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 ct ON a.id_city = ct.id
--JOIN Region r ON ct.id_region = r.id
--JOIN Country co ON r.id_country = co.id
--JOIN Category c ON p.id_category = c.id
--JOIN Sale s ON s.id_product = p.id
--GROUP BY pr.name, ct.name, r.name, co.name, a.street, p.name, c.name
--HAVING SUM(s.price * s.quantity) BETWEEN 2000 AND 5000
--5. Показать категорию, товаров которой в магазине меньше всего
--SELECT
--c.name AS Категория,
--COUNT(p.name) AS [Количество товаров из категории]
--FROM Category c
--JOIN Product p ON p.id_category = c.id
--GROUP BY c.name
--6. Показать количество товаров каждой категории, при этом учитывая только те товары, стоимость поставни которых
--превышала 400 гривен. Условие: выведенная информация касается только трёх определённых поставщиков
--SELECT
--c.name AS Категория,
--COUNT(p.name) AS [Количество товаров из категории],
--sr.name AS Поставщик
--FROM Category c
--JOIN Product p ON p.id_category = c.id
--JOIN Delivery d ON d.id_product = p.id
--JOIN Supplier sr ON d.id_supplier = sr.id
--WHERE sr.name IN('Dairy World', 'Global Bakery', 'Green Fields')
--GROUP BY c.name, sr.name
--HAVING SUM(d.quantity * d.price) > 400
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment