Created
March 10, 2025 12:35
-
-
Save Vladislav-Melenchuk/8f9bacad0bc108973df1fc59b2debf20 to your computer and use it in GitHub Desktop.
HW_SQL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SUBQUERIES (в решении обязательно использовать минимум один подзапрос!): | |
1. Показать самый популярный товар магазина (больше всего раз продавался) | |
SELECT p.name as Popular | |
FROM Product p | |
WHERE p.id = ( | |
SELECT TOP 1 s.id_product | |
FROM Sale s | |
GROUP BY s.id_product | |
ORDER BY sum(s.quantity) DESC | |
) | |
2. Если общее количество товаров всех категорий принять за 100%, необходимо посчитать, сколько товаров каждой категории | |
(в процентном отношении) было продано | |
SELECT | |
c.name AS Категория, (SUM(s.quantity) * 100.0) / (SELECT SUM(quantity) FROM Sale) | |
FROM Sale s | |
JOIN Product p ON s.id_product = p.id | |
JOIN Category c ON p.id_category = c.id | |
GROUP BY c.name | |
3. Показать названия поставщиков, которые не поставляли йогурт | |
SELECT s.name | |
FROM Supplier s | |
WHERE s.id NOT IN ( | |
SELECT DISTINCT d.id_supplier | |
FROM Delivery d | |
JOIN Product p ON d.id_product = p.id | |
WHERE p.name LIKE '%Йогурт%' | |
) | |
5. Показать всех производителей, количество наименований товаров которых в магазине больше, чем количество наименований | |
всех товаров фирмы ООО «Самтаймс» | |
SELECT pr.name as Producer | |
FROM Producer pr | |
WHERE ( | |
SELECT COUNT(*) | |
FROM Product p | |
WHERE p.id_producer = pr.id | |
) > ( | |
SELECT COUNT(*) | |
FROM Product p | |
JOIN Producer pr2 ON p.id_producer = pr2.id | |
WHERE pr2.name = 'ООО Самтаймс' | |
) | |
6. Показать общее количество продаж по каждому дню, начиная от 15.11.2024, и по сей день. Отсортировать по убыванию даты | |
SELECT s.date_of_sale, SUM(s.quantity) | |
FROM Sale s | |
GROUP BY s.date_of_sale | |
HAVING s.date_of_sale IN ( | |
SELECT DISTINCT date_of_sale | |
FROM Sale | |
WHERE date_of_sale >= '2024-11-15' | |
) | |
ORDER BY s.date_of_sale DESC | |
============================================================================================================ | |
CREATE TABLE: | |
1. написать запросы на создание шести таблиц БД Издательства | |
CREATE TABLE Country ( | |
id int PRIMARY KEY identity(1, 1), | |
name VARCHAR(100) NOT NULL | |
) | |
CREATE TABLE Shops ( | |
id int PRIMARY KEY identity(1, 1), | |
name VARCHAR(150) NOT NULL, | |
id_country INT NOT NULL, | |
FOREIGN KEY (id_country) REFERENCES Country(id) | |
) | |
CREATE TABLE Authors ( | |
id int PRIMARY KEY identity(1, 1), | |
firstname VARCHAR(100) NOT NULL, | |
lastname VARCHAR(100) NOT NULL, | |
id_country INT NOT NULL, | |
FOREIGN KEY (id_country) REFERENCES Country(id) | |
) | |
CREATE TABLE Themes ( | |
id int PRIMARY KEY identity(1, 1), | |
name VARCHAR(100) NOT NULL | |
) | |
CREATE TABLE Books ( | |
id int PRIMARY KEY identity(1, 1), | |
name VARCHAR(255) NOT NULL, | |
id_theme INT NOT NULL, | |
id_author INT NOT NULL, | |
price DECIMAL(10,2) NOT NULL, | |
date_of_publish DATE NOT NULL, | |
pages INT NOT NULL, | |
FOREIGN KEY (id_theme) REFERENCES Themes(id), | |
FOREIGN KEY (id_author) REFERENCES Authors(id) | |
) | |
CREATE TABLE Sales ( | |
id int PRIMARY KEY identity(1, 1), | |
id_book INT NOT NULL, | |
id_shop INT NOT NULL, | |
date_of_sale DATE NOT NULL, | |
price DECIMAL(10,2) NOT NULL, | |
quantity INT NOT NULL, | |
FOREIGN KEY (id_book) REFERENCES Books(id), | |
FOREIGN KEY (id_shop) REFERENCES Shops(id) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment