Created
August 10, 2020 08:44
-
-
Save ingvar/603359bbce8bc5e9876762b1761b92bb to your computer and use it in GitHub Desktop.
Swivl SQL test
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
Возможно синтаксис структур и вставок не соответствует СУБД, с которой Вы | |
работаете, но общий смысл должен быть ясен. В каждом пункте ответ необходимо | |
предоставить в виде одного запроса к СУБД MySQL. | |
1. Написать SQL-запросы: | |
a. Вернуть название фирмы и ее телефон. В результате должны быть представлены | |
все фирмы по одному разу. Если у фирмы нет телефона, нужно вернуть пробел или | |
прочерк. Если у фирмы несколько телефонов, нужно вернуть любой из них. | |
b. Вернуть все фирмы, не имеющие телефонов. | |
c. Вернуть все фирмы, имеющие не менее 2-х телефонов. | |
d. Вернуть все фирмы, имеющие менее 2-х телефонов. | |
e. Вернуть фирму, имеющую максимальное кол-во телефонов. | |
Исходные данные #1: | |
CREATE TABLE `firm` ( | |
`id` int NOT NULL AUTO_INCREMENT, | |
`name` varchar(255) DEFAULT NULL, | |
PRIMARY KEY (`id`) | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
INSERT firm (id, name) VALUES (1, 'Sony'); | |
INSERT firm (id, name) VALUES (2, 'Panasonic'); | |
INSERT firm (id, name) VALUES (3, 'Samsung'); | |
CREATE TABLE `phone` | |
( | |
`id` int NOT NULL AUTO_INCREMENT, | |
`firm_id` int not null, | |
`phone` varchar(255) DEFAULT NULL, | |
PRIMARY KEY (`id`) | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
INSERT phone (id, firm_id, phone) VALUES (1, 1, '332-55-56'); | |
INSERT phone (id, firm_id, phone) VALUES (2, 1, '332-30-01'); | |
INSERT phone (id, firm_id, phone) VALUES (3, 2, '256-49-16'); | |
Для представленного примера в пункте А запрос должен вернуть: | |
Name Phone | |
Sony 332-55-56 | |
Panasonic 256-39-12 | |
Samsung | |
Исходные данные #2: | |
CREATE TABLE `company` ( | |
`id` int NOT NULL AUTO_INCREMENT, | |
`name` varchar(255) DEFAULT NULL, | |
PRIMARY KEY (`id`) | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
CREATE TABLE `goods` ( | |
`id` int NOT NULL AUTO_INCREMENT, | |
`name` varchar(255) DEFAULT NULL, | |
PRIMARY KEY (`id`) | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
CREATE TABLE `shipment` | |
( | |
`id` int NOT NULL AUTO_INCREMENT, | |
`company_id` int not null, | |
`good_id` int not null, | |
`quantity` float not null, | |
`shipdate` datetime not null, | |
PRIMARY KEY (`id`) | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
INSERT company (id, name) VALUES (1, 'Intel'); | |
INSERT company (id, name) VALUES (2, 'IBM'); | |
INSERT company (id, name) VALUES (3, 'Compaq'); | |
INSERT goods (id, name) VALUES (1, 'Pentium IIV'); | |
INSERT goods (id, name) VALUES (2, 'IBM server'); | |
INSERT goods (id, name) VALUES (3, 'Compaq Presario'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (1, 1, 1, 100, '11.04.2020'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (2, 1, 1, 200, '11.07.2020'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (3, 1, 2, 300, '12.02.2020'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (4, 1, 2, 400, '10.05.2020'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (5, 2, 1, 100, '10.29.2019'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (6, 2, 1, 200, '11.06.2019'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (7, 2, 2, 300, '12.12.2019'); | |
INSERT shipment (id, company_id, good_id, quantity, shipdate) VALUES (8, 2, 2, 700, '12.03.2019'); | |
Для таблиц с данными o компаниях, товарах и поставках вернуть следующие данные: | |
a. Вывести общий объем поставок каждого из продуктов для каждой фирмы с указанием | |
даты последней поставки | |
b. Аналогично предыдущему пункту, но за последние 30 дней. Если поставки | |
какого-либо из товаров для компании в этот период отсутствовали, вывести в | |
столбце объема 'No data' | |
SQL запросы необходимо выложить на https://gist.github.com. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment