Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
IvanPadoltsev/SQL-Academy
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
d86953d Jun 7, 2021
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
June 7, 2021 17:29
June 7, 2021 17:32
README.md
Задание 1: Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний SELECT name from Passenger
Задание 2: Вывести названия всеx авиакомпаний SELECT name FROM Company;
Задание 3: Вывести все рейсы, совершенные из Москвы SELECT * FROM Trip WHERE town_from = ‘Moscow’;
Задание 4: Вывести имена людей, которые заканчиваются на «man» SELECT name FROM Passenger WHERE name LIKE ‘%man’;
Задание 5: Вывести количество рейсов, совершенных на TU-134 SELECT DISTINCT COUNT(‘plane’) AS count FROM Trip WHERE plane LIKE ‘TU-134’;
Задание 6: Какие компании совершали перелеты на Boeing SELECT Company.name FROM Trip LEFT JOIN Company ON Company.id = Trip.company WHERE plane = ‘Boeing’ GROUP BY company;
Задание 7: Вывести все названия самолётов, на которых можно улететь в Москву (Moscow) SELECT plane FROM Trip WHERE town_to = ‘Moscow’ GROUP BY plane;
Задание 8: В какие города можно улететь из Парижа (Paris) и сколько времени это займёт? SELECT town_to, TIMEDIFF(time_in, time_out) AS flight_time FROM Trip WHERE town_from = ‘Paris’;
Задание 9: SELECT name FROM Company AS c LEFT JOIN Trip AS t ON c.id = t.company WHERE t.town_from = ‘Vladivostok’;
Задание 10: Вывести вылеты, совершенные с 10 ч. по 14 ч. 1 января 1900 г. SELECT * FROM Trip WHERE time_out BETWEEN ‘1900-01-01T10:00:00.000Z’ AND ‘1900-01-01T14:00:00.000Z’;
Задание 11: Вывести пассажиров с самым длинным именем SELECT name FROM Passenger ORDER BY LENGTH(name) DESC LIMIT 1;
Задание 12: Вывести id и количество пассажиров для всех прошедших полётов SELECT trip, COUNT(passenger) AS count FROM Pass_in_trip GROUP BY trip;
Задание 13: Вывести имена людей, у которых есть полный тёзка среди пассажиров SELECT name FROM Passenger GROUP BY name HAVING COUNT(*) > 1;
Задание 14: В какие города летал Bruce Willis SELECT t.town_to FROM Trip AS t JOIN Pass_in_trip AS pit ON t.id = trip JOIN Passenger AS p ON p.id = passenger WHERE name = ‘Bruce Willis’;
Задание 15: Во сколько Стив Мартин (Steve Martin) прилетел в Лондон (London) SELECT t.time_in FROM Trip AS t JOIN Pass_in_trip AS pit ON t.id = trip JOIN Passenger AS p ON p.id = passenger WHERE name = ‘Steve Martin’ AND town_to = ‘London’;
Задание 16: Вывести отсортированный по количеству перелетов (по убыванию) и имени (по возрастанию) список пассажиров, совершивших хотя бы 1 полет. SELECT p.name, COUNT(passenger) AS count FROM Trip AS t JOIN Pass_in_trip AS pit ON t.id = trip JOIN Passenger AS p ON p.id = passenger GROUP BY p.name HAVING count >= 1 ORDER BY count DESC, p.name ASC;
Задание 17: Определить, сколько потратил в 2005 году каждый из членов семьи SELECT member_name, status, SUM(unit_price * amount) as costs FROM Payments AS p JOIN FamilyMembers AS fm ON p.family_member = fm.member_id WHERE date LIKE ‘2005%’ GROUP BY family_member;
Задание 18: Узнать, кто старше всех в семьe SELECT member_name FROM FamilyMembers WHERE birthday = (SELECT MIN(birthday) FROM FamilyMembers);
Задание 19: Определить, кто из членов семьи покупал картошку (potato) SELECT status FROM FamilyMembers AS fm JOIN Payments AS p ON fm.member_id = p.family_member JOIN Goods AS g ON p.good = g.good_id WHERE good_name LIKE ‘potato’ GROUP BY status;
Задание 20: Сколько и кто из семьи потратил на развлечения (entertainment). Вывести статус в семье, имя, сумму SELECT status, member_name, SUM(unit_price*amount) AS costs FROM FamilyMembers AS fm JOIN Payments AS p ON fm.member_id = p.family_member JOIN Goods AS g ON p.good = g.good_id JOIN GoodTypes as gp ON g.type = gp.good_type_id WHERE good_type_name = ‘entertainment’ GROUP BY family_member;
Задание 21: Определить товары, которые покупали более 1 раза SELECT good_name FROM Payments AS p JOIN Goods as g ON p.good = g.good_id GROUP BY good HAVING COUNT(good_name) > 1;
Задание 22: Найти имена всех матерей (mother) SELECT member_name FROM FamilyMembers WHERE status = ‘mother’;
Задание 23: SELECT good_name, unit_price FROM Payments AS p JOIN Goods AS g ON p.good = g.good_id JOIN GoodTypes as gp ON g.type = gp.good_type_id WHERE good_type_name = ‘delicacies’ LIMIT 1;
Задание 24: Определить кто и сколько потратил в июне 2005 SELECT member_name, SUM(unit_price*amount) as costs FROM Payments as p JOIN FamilyMembers as fm ON p.family_member = fm.member_id WHERE date LIKE ‘2005-06%’ GROUP BY member_name;
Задание 25: Определить, какие товары имеются в таблице Goods, но не покупались в течение 2005 года SELECT good_name FROM Goods
LEFT JOIN Payments ON Goods.good_id = Payments.good AND YEAR(Payments.date) = 2005 WHERE Payments.good IS NULL GROUP BY good_id;
ЕЩЕ ОДНО РЕШЕНИЕ:
SELECT good_name, good_id, good, date FROM Goods as g LEFT OUTER JOIN Payments as p ON g.good_id = p.good WHERE date IS NULL OR date NOT LIKE ‘2005%’ ORDER BY good;
Задание 26: Определить группы товаров, которые не приобретались в 2005 году ГРУППЫ, ТОВАРЫ, КОГДА ПРИОБРЕТАЛИСЬ: SELECT good_type_name, good_name, good_id, good, payment_id, date FROM Goods JOIN Payments ON Goods.good_id = Payments.good JOIN GoodTypes ON GoodTypes.good_type_id = Goods.type;
РЕШЕНИЕ: SELECT good_type_name FROM GoodTypes WHERE good_type_id NOT IN (SELECT good_type_id FROM Goods JOIN Payments ON Goods.good_id = Payments.good AND YEAR(date) = 2005 JOIN GoodTypes ON GoodTypes.good_type_id = Goods.type);
Задание 27: Узнать, сколько потрачено на каждую из групп товаров в 2005 году. Вывести название группы и сумму SELECT good_type_name, SUM(amount*unit_price) AS costs FROM GoodTypes JOIN Goods ON good_type_id = type JOIN Payments ON good = good_id AND YEAR(date) = 2005 GROUP BY good_type_name;
Задание 28: Сколько рейсов совершили авиакомпании с Ростова (Rostov) в Москву (Moscow) ? SELECT COUNT(id) AS count FROM Trip WHERE town_from = ‘Rostov’ AND town_to = ‘Moscow’;
Задание 29: Выведите имена пассажиров улетевших в Москву (Moscow) на самолете TU-134 SELECT DISTINCT name FROM Passenger JOIN Pass_in_trip ON Passenger.id = Pass_in_trip.passenger JOIN Trip ON Pass_in_trip.trip = Trip.id WHERE plane = ‘TU-134’ AND town_to = ‘Moscow’;
Задание 30: Выведите нагруженность (число пассажиров) каждого рейса (trip). Результат вывести в отсортированном виде по убыванию нагруженности. SELECT trip, COUNT(passenger) AS count FROM Passenger JOIN Pass_in_trip ON Passenger.id = Pass_in_trip.passenger JOIN Trip ON Pass_in_trip.trip = Trip.id GROUP BY trip ORDER BY count DESC;
Задание 31: Вывести всех членов семьи с фамилией Quincey. SELECT * FROM FamilyMembers WHERE member_name LIKE ‘%Quincey’;
Задание 32: Вывести средний возраст людей (в годах), хранящихся в базе данных. Результат округлите до целого в меньшую сторону. SELECT FLOOR(AVG(FLOOR(DATEDIFF(NOW(), birthday)/365))) AS age FROM FamilyMembers;
Задание 33: Найдите среднюю стоимость икры. В базе данных хранятся данные о покупках красной (red caviar) и черной икры (black caviar). SELECT AVG(unit_price) AS cost FROM Payments JOIN Goods ON good=good_id WHERE good_name = ‘red caviar’ OR good_name = ‘black caviar’;
Задание 34: Сколько всего 10-ых классов? SELECT COUNT(name) AS count FROM Class WHERE name LIKE ‘10%’;
Задание 35: Сколько различных кабинетов школы использовались 2.09.2019 в образовательных целях ? SELECT DISTINCT COUNT(classroom) AS count FROM Schedule WHERE date LIKE ‘2019-09-02%’;
Задание 36: Выведите информацию об обучающихся живущих на улице Пушкина (ul. Pushkina)? SELECT * FROM Student WHERE address LIKE ‘%Pushkina%’;
Задание 37: Сколько лет самому молодому обучающемуся ? SELECT ROUND(MIN(DATEDIFF(NOW(), birthday)/365)) AS year FROM Student; SELECT FLOOR(MIN(DATEDIFF(NOW(), birthday)/365)) AS year FROM Student;
Задание 38: SELECT COUNT(1) As count FROM Student WHERE first_name LIKE ‘Anna’;
- SELECT COUNT(class) AS count FROM Student_in_class JOIN Class ON Class.id=class WHERE name LIKE ’10 B’;
- SELECT COUNT(class) AS count FROM Student_in_class JOIN Class ON Class.id=class AND name = ’10 B’;
Задание 40: Выведите название предметов, которые преподает Ромашкин П.П. (Romashkin P.P.) ? SELECT DISTINCT(Subject.name) AS subjects FROM Subject JOIN Schedule ON Subject.id=Schedule.subject JOIN Teacher ON Teacher.id=Schedule.teacher AND last_name=’Romashkin’;
Задание 41: Во сколько начинается 4-ый учебный предмет по расписанию ? SELECT start_pair FROM Timepair WHERE start_pair FROM Timepair LIMIT 3, 1; SELECT start_pair FROM Timepair LIMIT 1 OFFSET 3;
Задание 42: Сколько времени обучающийся будет находиться в школе, учась со 2-го по 4-ый уч. предмет ? SELECT DISTINCT TIMEDIFF((SELECT end_pair FROM Timepair WHERE (SELECT start_pair FROM Timepair WHERE as time FROM Timepair;
Задание 43: Выведите фамилии преподавателей, которые ведут физическую культуру (Physical Culture). Остортируйте преподавателей по фамилии. SELECT last_name FROM Teacher JOIN Schedule ON Teacher.id=Schedule.teacher JOIN Subject ON Subject.id=Schedule.subject WHERE Subject.name=’Physical Culture’ ORDER BY last_name ASC;
Задание 44: Найдите максимальный возраст (колич. лет) среди обучающихся 10 классов ? SELECT FLOOR(MAX((DATEDIFF(NOW(), birthday)/365))) AS max_year FROM Student JOIN Student_in_class ON Student.id=Student_in_class.student JOIN Class ON Class.id=Student_in_class.class WHERE Class.name LIKE ‘10%’;
Задание 45: Какой(ие) кабинет(ы) пользуются самым большим спросом?
SELECT classroom, COUNT(classroom) as count FROM Schedule GROUP BY classroom HAVING COUNT() > 4 ORDER BY COUNT() DESC; — какие кабинеты в топе?
Задание 46: В каких классах введет занятия преподаватель «Krauze» ? SELECT DISTINCT name FROM Class JOIN Schedule ON Class.id=Schedule.class JOIN Teacher ON Teacher.id=Schedule.teacher WHERE last_name = ‘Krauze’;
Задание 47: Сколько занятий провел Krauze 30 августа 2019 г.? SELECT COUNT(teacher) AS count FROM Schedule JOIN Teacher ON Teacher.id=Schedule.teacher AND last_name = ‘Krauze’ WHERE date LIKE ‘2019-08-30%’;
Задание 48: Выведите заполненность классов в порядке убывания SELECT name, COUNT(class) as count FROM Class JOIN Student_in_class ON Class.id=Student_in_class.class GROUP BY name ORDER BY COUNT(*) DESC;
Задание 49: Какой процент обучающихся учится в 10 A классе ? SELECT (COUNT(*)*100/(SELECT COUNT(Student.id) as count FROM Student JOIN Student_in_class ON Student.id=Student_in_class.student)) AS percent FROM Student_in_class JOIN Class ON Class.id=Student_in_class.class AND name = ’10 A’;
Задание 50: Какой процент обучающихся родился в 2000 году? Результат округлить до целого в меньшую сторону. SELECT FLOOR((COUNT(*)*100/(SELECT COUNT(Student.id) as count FROM Student JOIN Student_in_class ON Student.id=Student_in_class.student))) AS percent FROM Student WHERE YEAR(birthday) = 2000;
Задание 51: Добавьте товар с именем «Cheese» и типом «food» в список товаров (Goods). INSERT INTO Goods(good_id, good_name, type) VALUES (17, ‘Cheese’, 2);
Задание 52: Добавьте в список типов товаров (GoodTypes) новый тип «auto». INSERT INTO GoodTypes(good_type_id, good_type_name) VALUES (9, ‘auto’);
Задание 53: Измените имя «Andie Quincey» на новое «Andie Anthony». UPDATE FamilyMembers SET member_name=’Andie Anthony’ WHERE member_id=3;
Задание 54: Удалить всех членов семьи с фамилией «Quincey». DELETE FROM FamilyMembers WHERE member_name LIKE ‘%Quincey’;
Задание 55: Удалить компании, совершившие наименьшее количество рейсов. SELECT name, COUNT(company) as company FROM Trip JOIN Company ON Company.id=Trip.company GROUP BY name; DELETE FROM Company WHERE FROM Company WHERE FROM Company WHERE >
Задание 56: Удалить все перелеты, совершенные из Москвы (Moscow). DELETE FROM Trip WHERE town_from LIKE ‘%Moscow’;
Задание 57: Перенести расписание всех занятий на 30 мин. вперед. UPDATE Timepair SET start_pair = DATE_ADD(start_pair, INTERVAL 30 MINUTE); UPDATE Timepair SET end_pair = DATE_ADD(end_pair, INTERVAL 30 MINUTE);
Задание 58: Добавить отзыв с рейтингом 5 на жилье, находящиеся по адресу «11218, Friel Place, New York», от имени «George Clooney» SELECT Users.name, Reservations.* FROM Reservations JOIN Rooms ON Rooms.id=Reservations.room_id JOIN Users ON Users.id=Reservations.user_id WHERE address = ‘11218, Friel Place, New York’
INSERT INTO Reviews (id, reservation_id, rating) VALUES (23, 2, 5);
Задание 59: Вывести пользователей,указавших Белорусский номер телефона ? Телефонный код Белоруссии +375. SELECT * FROM Users WHERE phone_number LIKE ‘+375%’;
Задание 60: Выведите идентификаторы преподавателей, которые хотя бы один раз за всё время преподавали в каждом из одиннадцатых классов.
SELECT teacher FROM Schedule JOIN Teacher ON Teacher.id=Schedule.teacher JOIN Subject ON Subject.id=Schedule.subject JOIN Class ON Class.id=Schedule.class WHERE Class.name IN (’11 A’, ’11 B’) GROUP BY teacher HAVING COUNT(teacher)>=1 ORDER BY teacher;
Задание 61: Выведите список комнат, которые были зарезервированы в течение 12 недели 2020 года. SELECT Rooms.* FROM Rooms JOIN Reservations ON Rooms.id=Reservations.room_id AND YEAR(start_date)=2020 AND YEAR(end_date)=2020 WHERE WEEK(start_date, 1)=12 OR WEEK(end_date, 1)=12;
Задание 62: Вывести в порядке убывания популярности доменные имена 2-го уровня, используемые пользователями для электронной почты. Полученный результат необходимо дополнительно отсортировать по возрастанию названий доменных имён. SELECT SUBSTRING_INDEX(email, ‘@’, -1) as domain, count(*) AS count FROM Users GROUP BY domain ORDER BY count DESC, domain ASC;
Задание 63: Выведите отсортированный список (по возрастанию) имен студентов в виде Фамилия.И.О. SELECT CONCAT(last_name, ‘.’, LEFT(first_name, 1), ‘.’, LEFT(middle_name, 1), ‘.’) AS name FROM Student ORDER BY first_name ASC;
Задание 64: Выведите имена всех пар пассажиров, летевших вместе на одном рейсе два или более раз, и количество таких совместных рейсов. В passengerName1 разместите имя пассажира с наименьшим идентификатором.
Задание 65: Необходимо вывести рейтинг для комнат, которые хоть раз арендовали, как среднее значение рейтинга отзывов округленное до целого вниз. SELECT room_id, FLOOR(AVG(rating)) AS rating FROM Reservations JOIN Reviews ON Reviews.reservation_id=Reservations.id GROUP BY room_id;
Задание 66: Вывести список комнат со всеми удобствами (наличие ТВ, интернета, кухни и кондиционера), а также общее количество дней и сумму за все дни аренды каждой из таких комнат. SELECT home_type, address, COALESCE(SUM(DATEDIFF(end_date, start_date)), 0) as days, COALESCE(SUM(Reservations.total), 0) AS total_fee FROM Reservations RIGHT JOIN Rooms ON Rooms.id=Reservations.room_id WHERE has_tv !=0 AND has_internet !=0 AND has_kitchen !=0 AND has_air_con !=0 GROUP BY address, home_type;
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Решение заданий из тренажера sql-academy.org
Yunique33/sql-academy-solutions
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
b8f0c82 Dec 15, 2023
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
December 13, 2023 20:10
December 15, 2023 16:14
December 13, 2023 20:10
README.md
Решение заданий из тренажера SQL Academy
- Вывести имена всех людей, которые есть в базе данных авиакомпаний (сайт)
SELECT name FROM passenger;
- Вывести названия всеx авиакомпаний (сайт)
SELECT name FROM Company;
- Вывести все рейсы, совершенные из Москвы (сайт)
SELECT * FROM trip WHERE town_from = 'Moscow';
- Вывести имена людей, которые заканчиваются на «man» (сайт)
SELECT name FROM passenger WHERE name LIKE '%man';
- Вывести количество рейсов, совершенных на TU-134 (сайт)
SELECT COUNT(*) AS count FROM trip WHERE plane = 'TU-134';
- Какие компании совершали перелеты на Boeing (сайт)
SELECT DISTINCT cp.name FROM company cp JOIN trip tr ON cp.id = tr.company WHERE plane = 'Boeing';
- Вывести все названия самолётов, на которых можно улететь в Москву (Moscow) (сайт)
SELECT DISTINCT plane FROM trip WHERE town_to = 'Moscow';
- В какие города можно улететь из Парижа (Paris) и сколько времени это займёт? (сайт)
SELECT town_to, TIMEDIFF(time_in, time_out) AS flight_time FROM trip WHERE town_from = 'Paris';
- Какие компании организуют перелеты из Владивостока (Vladivostok)? (сайт)
SELECT name FROM trip tr JOIN company cp ON tr.company = cp.id WHERE town_from = 'Vladivostok';
- Вывести вылеты, совершенные с 10 ч. по 14 ч. 1 января 1900 г. (сайт)
SELECT * FROM trip WHERE DATE(time_out) = '1900-01-01' AND TIME_FORMAT(time_out, '%H:%i') >= '10:00' AND TIME_FORMAT(time_out, '%H:%i') '14:00';
- Выведите пассажиров с самым длинным ФИО. Пробелы, дефисы и точки считаются частью имени. (сайт)
SELECT name FROM passenger ORDER BY LENGTH(name) DESC LIMIT 1;
- Вывести id и количество пассажиров для всех прошедших полётов (сайт)
SELECT trip, COUNT(*) AS count FROM passenger ps JOIN Pass_in_trip pt ON ps.id = pt.passenger GROUP BY trip;
- Вывести имена людей, у которых есть полный тёзка среди пассажиров (сайт)
SELECT name FROM passenger GROUP BY name HAVING COUNT(*) > 1;
- В какие города летал Bruce Willis (сайт)
SELECT town_to FROM passenger ps JOIN Pass_in_trip pt ON ps.id = pt.passenger JOIN trip tr ON tr.id = pt.trip WHERE name = 'Bruce Willis';
- Выведите дату и время прилёта пассажира Стив Мартин (Steve Martin) в Лондон (London) (сайт)
SELECT time_in FROM trip tr JOIN Pass_in_trip pt ON tr.id = pt.trip JOIN passenger ps ON pt.passenger = ps.id WHERE name = 'Steve Martin' AND town_to = 'London';
- Вывести отсортированный по количеству перелетов (по убыванию) и имени (по возрастанию) список пассажиров, совершивших хотя бы 1 полет. (сайт)
SELECT name, COUNT(name) AS count FROM passenger ps JOIN Pass_in_trip pt ON ps.id = pt.passenger JOIN trip tr ON pt.trip = tr.id GROUP BY name ORDER BY count DESC, name ASC;
- Определить, сколько потратил в 2005 году каждый из членов семьи. В результирующей выборке не выводите тех членов семьи, которые ничего не потратили. (сайт)
SELECT member_name, status, SUM(unit_price * amount) AS costs FROM FamilyMembers fm JOIN Payments ps ON fm.member_id = ps.family_member WHERE YEAR(DATE) = 2005 GROUP BY member_name, status;
- Узнать, кто старше всех в семьe (сайт)
SELECT member_name FROM FamilyMembers ORDER BY birthday ASC LIMIT 1;
- Определить, кто из членов семьи покупал картошку (potato) (сайт)
SELECT status FROM FamilyMembers fm JOIN Payments ps ON fm.member_id = ps.family_member JOIN Goods gs ON ps.good = gs.good_id WHERE good_name = 'potato' GROUP BY status;
- Сколько и кто из семьи потратил на развлечения (entertainment). Вывести статус в семье, имя, сумму (сайт)
SELECT status, member_name, (amount * unit_price) AS costs FROM FamilyMembers fm JOIN Payments ps ON fm.member_id = ps.family_member JOIN Goods gs ON ps.good = gs.good_id JOIN GoodTypes gt ON gs.type = gt.good_type_id WHERE good_type_name = 'entertainment';
- Определить товары, которые покупали более 1 раза (сайт)
SELECT good_name FROM Goods gs JOIN Payments ps ON gs.good_id = ps.good GROUP BY good HAVING COUNT(*) > 1;
- Найти имена всех матерей (mother) (сайт)
SELECT member_name FROM FamilyMembers WHERE status = 'mother';
- Найдите самый дорогой деликатес (delicacies) и выведите его цену
(сайт)
SELECT good_name, unit_price FROM Goods gs JOIN GoodTypes gt ON gs.type = gt.good_type_id JOIN Payments ps ON gs.good_id = ps.good WHERE good_type_name = 'delicacies' ORDER BY unit_price DESC LIMIT 1;
- Определить кто и сколько потратил в июне 2005 (сайт)
SELECT member_name, (amount * unit_price) AS costs FROM FamilyMembers fm JOIN Payments ps ON fm.member_id = ps.family_member WHERE YEAR(date) = 2005 AND MONTH(date) = 6;
- Определить, какие товары не покупались в 2005 году (сайт)
SELECT good_name FROM Goods WHERE good_id NOT IN ( SELECT good FROM Payments WHERE YEAR(date) = 2005 );
- Определить группы товаров, которые не приобретались в 2005 году (сайт)
SELECT good_type_name FROM GoodTypes WHERE good_type_id NOT IN ( SELECT type FROM Goods gs JOIN Payments ps ON gs.good_id = ps.good WHERE YEAR(date) = 2005 GROUP BY good_id );
- Узнать, сколько потрачено на каждую из групп товаров в 2005 году. Вывести название группы и сумму (сайт)
SELECT good_type_name, SUM(amount * unit_price) AS costs FROM GoodTypes gt JOIN Goods gs ON gt.good_type_id = gs.type JOIN Payments ps ON gs.good_id = ps.good WHERE YEAR(date) = 2005 GROUP BY good_type_name;
- Сколько рейсов совершили авиакомпании из Ростова (Rostov) в Москву (Moscow) ? (сайт)
SELECT COUNT(*) AS COUNT FROM Trip WHERE town_from = 'Rostov' AND town_to = 'Moscow';
- Выведите имена пассажиров улетевших в Москву (Moscow) на самолете TU-134 (сайт)
SELECT name FROM Passenger ps JOIN Pass_in_trip pt ON ps.id = pt.passenger JOIN Trip tr ON pt.trip = tr.id WHERE plane = 'TU-134' AND town_to = 'Moscow' GROUP BY name;
- Выведите нагруженность (число пассажиров) каждого рейса (trip). Результат вывести в отсортированном виде по убыванию нагруженности. (сайт)
SELECT trip, COUNT(passenger) AS count FROM Pass_in_trip GROUP BY trip ORDER BY count DESC;
- Вывести всех членов семьи с фамилией Quincey. (сайт)
SELECT * FROM FamilyMembers WHERE member_name LIKE '% Quincey';
- Вывести средний возраст людей (в годах), хранящихся в базе данных. Результат округлите до целого в меньшую сторону. (сайт)
SELECT FLOOR( AVG(TIMESTAMPDIFF(YEAR, birthday, CURRENT_TIMESTAMP)) ) AS age FROM FamilyMembers;
- Найдите среднюю стоимость икры. В базе данных хранятся данные о покупках красной (red caviar) и черной икры (black caviar). (сайт)
SELECT AVG(unit_price) AS cost FROM Payments ps JOIN Goods gs ON ps.good = gs.good_id WHERE good_name = 'red caviar' OR good_name = 'black caviar';
- Сколько всего 10-ых классов (сайт)
SELECT COUNT(name) AS count FROM Class WHERE name LIKE '10 %';
- Сколько различных кабинетов школы использовались 2.09.2019 в образовательных целях ? (сайт)
SELECT COUNT(DISTINCT classroom) AS count FROM Student_in_class sc JOIN Class cl ON sc.class = cl.id JOIN Schedule sh ON sh.class = cl.id WHERE DATE_FORMAT(date, '%e.%m.%Y') = '2.09.2019';
- Выведите информацию об обучающихся живущих на улице Пушкина (ul. Pushkina)? (сайт)
SELECT * FROM Student WHERE address RLIKE 'Pushkina';
- Сколько лет самому молодому обучающемуся ? (сайт)
SELECT TIMESTAMPDIFF(YEAR, birthday, CURRENT_TIMESTAMP) AS year FROM Student ORDER BY year ASC LIMIT 1;
- Сколько Анн (Anna) учится в школе ? (сайт)
SELECT COUNT(*) AS count FROM Student WHERE first_name = 'Anna';
- Сколько обучающихся в 10 B классе ? (сайт)
SELECT COUNT(*) AS count FROM Student_in_class sc JOIN Class cl ON sc.class = cl.id WHERE name = '10 B';
- Выведите название предметов, которые преподает Ромашкин П.П. (Romashkin P.P.) ? (сайт)
SELECT name AS subjects FROM Subject sj JOIN Schedule sc ON sj.id = sc.subject JOIN Teacher tc ON tc.id = sc.teacher WHERE last_name = 'Romashkin' AND first_name LIKE 'P%' AND middle_name LIKE 'P%';
- Во сколько начинается 4-ый учебный предмет по расписанию ? (сайт)
SELECT start_pair FROM Timepair WHERE id = 4;
- Сколько времени обучающийся будет находиться в школе, учась со 2-го по 4-ый уч. предмет? (сайт)
SELECT TIMEDIFF(MAX(end_pair), MIN(start_pair)) AS time FROM Timepair WHERE id BETWEEN 2 AND 4;
- Выведите фамилии преподавателей, которые ведут физическую культуру (Physical Culture). Отсортируйте преподавателей по фамилии в алфавитном порядке. (сайт)
SELECT last_name FROM Teacher tc JOIN Schedule sc ON tc.id = sc.teacher JOIN Subject sj ON sj.id = sc.subject WHERE name = 'Physical Culture' ORDER BY last_name;
- Найдите максимальный возраст (колич. лет) среди обучающихся 10 классов ? (сайт)
SELECT TIMESTAMPDIFF(YEAR, birthday, CURRENT_TIMESTAMP) AS max_year FROM Student st JOIN Student_in_class sc ON sc.student = st.id JOIN Class cl ON cl.id = sc.class WHERE name LIKE '10 %' ORDER BY max_year DESC LIMIT 1;
- Какие кабинеты чаще всего использовались для проведения занятий? Выведите те, которые использовались максимальное количество раз. (сайт)
SELECT classroom FROM Schedule GROUP BY classroom HAVING count(classroom) = ( SELECT COUNT(*) AS count FROM Schedule GROUP BY classroom ORDER BY count DESC LIMIT 1 );
- В каких классах введет занятия преподаватель «Krauze» ? (сайт)
SELECT name FROM Schedule sc JOIN Teacher tc ON tc.id = sc.teacher JOIN Class cl ON cl.id = sc.class WHERE last_name = 'Krauze' GROUP BY name;
- Сколько занятий провел Krauze 30 августа 2019 г.? (сайт)
SELECT COUNT(*) AS count FROM Schedule sc JOIN Teacher tc ON tc.id = sc.teacher WHERE DATE_FORMAT(date, '%e %M %Y') = '30 August 2019' AND last_name = 'Krauze';
- Выведите заполненность классов в порядке убывания (сайт)
SELECT name, COUNT(student) AS count FROM Class cl JOIN Student_in_class sc ON sc.class = cl.id GROUP BY name ORDER BY count DESC;
- Какой процент обучающихся учится в «10 A» классе? Выведите ответ в диапазоне от 0 до 100 без округления, например, 96.0201. (сайт)
SELECT COUNT(*) * 100 / ( SELECT COUNT(*) FROM Student_in_class ) AS percent FROM Student_in_class sc JOIN Class cs ON cs.id = sc.class WHERE name = '10 A';
- Какой процент обучающихся родился в 2000 году? Результат округлить до целого в меньшую сторону. (сайт)
SELECT FLOOR( COUNT(*) * 100 / ( SELECT COUNT(*) FROM Student_in_class ) ) AS percent FROM Student_in_class sc JOIN Student st ON st.id = sc.student WHERE YEAR(birthday) = 2000;
- Добавьте товар с именем «Cheese» и типом «food» в список товаров (Goods). (сайт)
INSERT INTO Goods SET good_id = ( SELECT COUNT(*) + 1 FROM Goods AS gs ), good_name = 'Cheese', type = ( SELECT good_type_id FROM GoodTypes WHERE good_type_name = 'food' );
- Добавьте в список типов товаров (GoodTypes) новый тип «auto». (сайт)
INSERT INTO GoodTypes SET good_type_id = ( SELECT COUNT(*) + 1 FROM GoodTypes AS gt ), good_type_name = 'auto';
- Измените имя «Andie Quincey» на новое «Andie Anthony». (сайт)
UPDATE FamilyMembers SET member_name = 'Andie Anthony' WHERE member_name = 'Andie Quincey';
- Удалить всех членов семьи с фамилией «Quincey». (сайт)
DELETE FROM FamilyMembers WHERE member_name LIKE '% Quincey';
- Удалить компании, совершившие наименьшее количество рейсов. (сайт)
DELETE FROM company WHERE id IN ( SELECT company FROM trip GROUP BY company HAVING COUNT(*) = ( SELECT COUNT(*) AS count FROM trip GROUP BY company ORDER BY count LIMIT 1 ) );
- Удалить все перелеты, совершенные из Москвы (Moscow). (сайт)
DELETE FROM trip WHERE town_from = 'Moscow';
- Перенести расписание всех занятий на 30 мин. вперед. (сайт)
UPDATE Timepair SET start_pair = ADDTIME(start_pair, '00:30:00'), end_pair = ADDTIME(end_pair, '00:30:00');
- Добавить отзыв с рейтингом 5 на жилье, находящиеся по адресу «11218, Friel Place, New York», от имени «George Clooney» (сайт)
INSERT INTO Reviews SET id = ( SELECT COUNT(*) + 1 FROM Reviews rw ), reservation_id = ( SELECT rs.id FROM Reservations rs JOIN Rooms rm ON rm.id = rs.room_id JOIN Users us ON rs.user_id = us.id WHERE address = '11218, Friel Place, New York' AND name = 'George Clooney' ), rating = 5;
- Вывести пользователей,указавших Белорусский номер телефона ? Телефонный код Белоруссии +375. (сайт)
SELECT * FROM Users WHERE phone_number LIKE '+375 %';
- Выведите идентификаторы преподавателей, которые хотя бы один раз за всё время преподавали в каждом из одиннадцатых классов. (сайт)
SELECT teacher FROM Schedule sc JOIN Class cl ON sc.class = cl.id WHERE name LIKE '11 %' GROUP BY teacher HAVING COUNT(DISTINCT name) = 2;
- Выведите список комнат, которые были зарезервированы хотя бы на одни сутки в 12-ую неделю 2020 года. В данной задаче в качестве одной недели примите период из семи дней, первый из которых начинается 1 января 2020 года. Например, первая неделя года — 1–7 января, а третья — 15–21 января. (сайт)
SELECT Rooms.* FROM Reservations JOIN Rooms ON Rooms.id = Reservations.room_id WHERE WEEK(start_date, 1) = 12 AND YEAR(start_date) = 2020;
- Вывести в порядке убывания популярности доменные имена 2-го уровня, используемые пользователями для электронной почты. Полученный результат необходимо дополнительно отсортировать по возрастанию названий доменных имён. (сайт)
SELECT SUBSTRING_INDEX(email, '@', -1) AS domain, COUNT(substring_index(email, '@', -1)) AS count FROM Users GROUP BY domain ORDER BY count DESC, domain;
- Выведите отсортированный список (по возрастанию) фамилий и имен студентов в виде Фамилия.И. (сайт)
SELECT CONCAT(last_name, '.', LEFT(first_name, 1), '.') AS name FROM Student ORDER BY name;
- Вывести количество бронирований по каждому месяцу каждого года, в которых было хотя бы 1 бронирование. Результат отсортируйте в порядке возрастания даты бронирования. (сайт)
SELECT YEAR(start_date) AS year, MONTH(start_date) AS month, COUNT(*) AS amount FROM Reservations GROUP BY YEAR(start_date), MONTH(start_date) ORDER BY year, month;
- Необходимо вывести рейтинг для комнат, которые хоть раз арендовали, как среднее значение рейтинга отзывов округленное до целого вниз. (сайт)
SELECT room_id, FLOOR(AVG(rating)) AS rating FROM Reservations rs JOIN Reviews rw ON rw.reservation_id = rs.id GROUP BY room_id;
- Вывести список комнат со всеми удобствами (наличие ТВ, интернета, кухни и кондиционера), а также общее количество дней и сумму за все дни аренды каждой из таких комнат. (сайт)
SELECT home_type, address, IFNULL(SUM(total / rs.price), 0) AS days, IFNULL(SUM(total), 0) AS total_fee FROM Rooms rm LEFT JOIN Reservations rs ON rs.room_id = rm.id WHERE has_tv = 1 AND has_internet = 1 AND has_kitchen = 1 AND has_air_con = 1 GROUP BY home_type, address;
- Вывести время отлета и время прилета для каждого перелета в формате «ЧЧ:ММ, ДД.ММ — ЧЧ:ММ, ДД.ММ», где часы и минуты с ведущим нулем, а день и месяц без. (сайт)
SELECT CONCAT( DATE_FORMAT(time_out, '%H:%i, %e.%c'), ' - ', DATE_FORMAT(time_in, '%H:%i, %e.%c') ) AS flight_time FROM Trip;
- Для каждой комнаты, которую снимали как минимум 1 раз, найдите имя человека, снимавшего ее последний раз, и дату, когда он выехал (сайт)
SELECT rs.room_id, name, date AS end_date FROM ( SELECT room_id, MAX(end_date) AS date FROM Reservations GROUP BY room_id ) rs JOIN Reservations rsv ON rs.room_id = rsv.room_id AND rs.date = rsv.end_date JOIN Users us ON rsv.user_id = us.id;
- Вывести идентификаторы всех владельцев комнат, что размещены на сервисе бронирования жилья и сумму, которую они заработали (сайт)
SELECT owner_id, IFNULL(SUM(total), 0) AS total_earn FROM Rooms rm LEFT JOIN Reservations rs ON rm.id = rs.room_id GROUP BY owner_id;
- Необходимо категоризовать жилье на economy, comfort, premium по цене соответственно = 200. В качестве результата вывести таблицу с названием категории и количеством жилья, попадающего в данную категорию (сайт)
SELECT CASE WHEN price 100 THEN 'economy' WHEN price > 100 AND price 200 THEN 'comfort' WHEN price >= 200 THEN 'premium' END AS category, COUNT(price) AS count FROM Rooms GROUP BY category;
- Найдите какой процент пользователей, зарегистрированных на сервисе бронирования, хоть раз арендовали или сдавали в аренду жилье. Результат округлите до сотых. (сайт)
SELECT ROUND( ( SELECT COUNT(*) FROM ( SELECT DISTINCT owner_id FROM Rooms rm JOIN Reservations rs ON rm.id = rs.room_id UNION SELECT user_id FROM Reservations ) active_users ) * 100 / ( SELECT COUNT(*) FROM Users ), 2 ) AS percent;
- Выведите среднюю стоимость бронирования для комнат, которых бронировали хотя бы один раз. Среднюю стоимость необходимо округлить до целого значения вверх. (сайт)
SELECT room_id, CEILING(AVG(price)) AS avg_price FROM Reservations GROUP BY room_id;
- Выведите id тех комнат, которые арендовали нечетное количество раз (сайт)
SELECT room_id, COUNT(*) AS count FROM Reservations GROUP BY room_id HAVING count % 2 != 0;
- Выведите идентификатор и признак наличия интернета в помещении. Если интернет в сдаваемом жилье присутствует, то выведите «YES», иначе «NO». (сайт)
SELECT id, IF(has_internet = 1, 'YES', 'NO') AS has_internet FROM Rooms;
- Выведите фамилию, имя и дату рождения студентов, кто был рожден в мае. (сайт)
SELECT last_name, first_name, birthday FROM Student WHERE MONTHNAME(birthday) = 'May';
- Вывести имена всех пользователей сервиса бронирования жилья, а также два признака: является ли пользователь собственником какого-либо жилья (is_owner) и является ли пользователь арендатором (is_tenant). В случае наличия у пользователя признака необходимо вывести в соответствующее поле 1, иначе 0. (сайт)
SELECT name, IF( id IN ( SELECT owner_id FROM Rooms ), 1, 0 ) AS is_owner, IF( id IN ( SELECT user_id FROM Reservations ), 1, 0 ) AS is_tenant FROM Users;
- Создайте представление с именем «People», которое будет содержать список имен (first_name) и фамилий (last_name) всех студентов (Student) и преподавателей(Teacher) (сайт)
CREATE VIEW People AS SELECT first_name, last_name FROM Student UNION SELECT first_name, last_name FROM Teacher
На каких самолетах летают президенты США и России?
Президенты разных стран мира вынуждены часто совершать перелеты из одних точек мира в другие. Само собой разумеется, что они не летают на обычных пассажирских самолетах. Специально для глав государств, наилучшие летающие средства совершенствуются для достижения большей комфортабельности, скорости и других характеристик. В США президентские самолеты обобщенно именуются как «Air Force One», что можно перевести как «Борт номер один». В нашей стране важнейший воздушный транспорт называется просто как «Самолет президента России». Компании, производящие самолеты, всегда стараются сделать так, чтобы перелеты президентов занимали как можно меньше времени. Например, недавно американская компания Exosonic начала разработку сверхзвукового самолета, способного развивать скорость в несколько тысяч километров в час. На этом летательном аппарате президент США будет иметь возможность перелетать из Нью-Йорка в Париж всего за час.

Президенты используют для перелетов совершенно другие самолеты
Первый президентский самолет
Первым президентом США, который начал летать на самолетах, стал Теодор Рузвельт (Theodore Roosevelt). В октябре 1910 года он сел на самолет братьев Райт совершил с ними первый полет. Братья Райт, кстати, считаются создателями воздушной техники. Регулярные полеты на самолетах начал совершать президент Франклин Рузвельт (Franklin Roosevelt) — для настолько ответственных перелетов использовались самолеты Dixie Clipper и Boeing 314. Они еще не считались моделями «Air Force One» и в их безопасности были большие сомнения. Из-за опасений за жизнь президента впоследствии был создан поистине первый «Борт номер один», на основу которого лег транспортный самолет C-87A.

Современные самолеты президента
С тех пор самолеты постоянно совершенствовались и на службе у президентов успели побывать разные модели. В октябре 1962 года администрация Джона Кеннеди (John Kennedy) приобрела улучшенную модель пассажирского самолета Boeing 707. Он стал известен как C-137 Stratoliner и был предназначен для дальних перелетов. Изначально внешний вид самолета был слишком ярким, поэтому президент Кеннеди попросил французского дизайнера Раймонда Лоуи (Raymond Loewy) заняться изменением его дизайна. В конечном итоге надписи на корпусе самолета были написаны шрифтом из первого издания «Декларации независимости», а рядом с ними была поставлена президентская печать.

Самолет C-137 Stratoliner
Сегодня же президент США и его окружение совершают перелеты на специальной версии пассажирского самолета Boeing 747. Он более известен как Boeing VC-25 и, если верить открытым источникам, может развивать скорость до 1015 километров час. Также известно, что летательный аппарат оснащен защищенными средствами связи. Самолет часто используется с вертолетами из группы Marine One, которые также предназначены для перевозки президента. Обычно вертолет используется для доставки президента на взлетно-посадочную полосу в моменты, когда передвигаться на наземном транспорте невозможно или не безопасно.

Сверхзвуковой самолет для президента
Администрация президента США уже давно хочет заменить Boeing VC-25 на более современный вид воздушного транспорта. В качестве идеальной замены власти хотят видеть сверхзвуковой самолет, способный развивать скорость до нескольких тысяч километров в час. Большим опытом в этом деле обладает американская компания Exosonic, поэтому с просьбой разработки быстрого самолета для президента Военно-морские силы США обратились именно к ее представителям. У компании уже есть самолет, который можно усовершенствовать для выполнения президентских задач. Одной из его главных особенностей считается возможность поместить в салон до 70 пассажиров. Дальность полета будущего самолета оценивается в 9000 километров.

Концепт сверхзвукового самолета Exosonic
Помимо компании Exosonic, разработкой президентского самолета также занимается стартап Hermeus. В августе его представители получили от ВВС США финансирование в размере 1,5 миллионов долларов. Сообщается, что разрабатываемое летательное средство должно разгоняться до 6000 километров в час и вмещать в себя от 9 до 19 человек. На данный момент известно, что компания уже смогла протестировать двигатель, который сможет разгонять самолет до сверхзвуковых скоростей. Но финальная версия самолета появится только спустя 10 лет или даже больше.

Концепт сверхзвукового самолета Hermeus
Самолет президента России
Перелеты по воздуху совершали и главы СССР. Известно, что Иосиф Сталин боялся самолетов и за свою жизнь летал только один раз. Исторический перелет был совершен 26 ноября 1943 года из азербайджанской столицы Баку в иранскую столицу Тегеран. Причиной же была встреча с Рузвельтом и Черчиллем. Для перелета использовалась военная версия пассажирского самолета DC-3, именуемая как Douglas C-47. Их было выпущено больше 10 тысяч штук и неспроста — для тех времен это были лучшие самолеты.

Сталин и Douglas C-47
Во второй половине XX века правители России летали на «самолетах Ильюшина». Так, руководители СССР Никита Хрущев и Леонид Брежнев совершали перелеты на Ил-18. А с 1992 года президенты страны летали на самолетах Ил-62, Ту-154, Ту-134 и Як-40. С 1996 года основным президентским самолетом считается Ил-96-300ПУ, который является сильно усовершенствованной версией пассажирского Ил-96. Точных данных нет, но в основном усовершенствования заключаются повышении комфортности и уровня безопасности. Самолет президента России обычно окрашен в традиционные цвета флага.

Ил-96-300ПУ — самолет президента России
Если вам интересны новости науки и технологий, подпишитесь на наш Telegram-канал. Там вы найдете анонсы свежих новостей нашего сайта!
На тему самолетов недавно интересную статью написал мой коллега Артем Сутягин. В своем длинном и подробном материале он рассказал о самом быстром самолете в мире и его конкурентах. Получилось очень интересно, поэтому рекомендую заняться чтением прямо сейчас!
Из Кольцово вновь можно улететь на Гоа без пересадок
Отмененные больше двух лет назад перелеты вернулись в расписание аэропорта, доставлять на индийский курорт уральцев дважды в неделю будет Boeing 757–200.
Прямые перелеты из Екатеринбурга на Гоа вновь появились в расписании аэропорта Кольцово. Первый рейс на индийский курорт вылетел вечером в понедельник, 14 ноября. В последний раз перелеты по направлению совершали весной 2020 г., после чего они были отменены из-за пандемии коронавируса.
Перелеты будут осуществляться дважды в неделю, по понедельникам и четвергам, на Boeing 757–200.
Вылет из Екатеринбурга в 21:20, прилет — в 04:55 на следующий день. Отправление с Гоа в 06:30, прибытие в Екатеринбург в 13:05, — рассказали в Кольцово.
Напомним, с 1 декабря из Екатеринбурга запустят рейсы в Таиланд, перевозить туристов FUN&SUN и Coral Travel в Паттайю и на Пхукет будет авиакомпания Azur Air. Рейсы на Пхукет из Екатеринбурга будут доступны и туристам ANEX Tour, пишет «РБК Екатеринбург».
Как писал DK.RU в октябре, компания FlyOne начала летать из Кольцово в Ереван на Airbus A319. Рейсы осуществляются дважды в неделю, по средам и воскресеньям. Из Екатеринбурга самолет вылетают по средам в 06:30, по воскресеньям в 06:15. Обратные рейсы в те же днивылетают в 01:20 по местному времени. Цена билета в одну сторону без багажа составляет от 203 до 268 евро (по информации на сайте авиакомпании).
С появлением нового перевозчика число рейсов из Екатеринбурга в Ереван увеличилось до девяти в неделю.
В августе были открыты перелеты из Екатеринбурга в египетский Шарм-эль-Шейх, осуществляет которые авиакомпания AlMasria, это чартеры туроператора «Библио-Глобус». Авиакомпания FlyDubai запустила дополнительные рейсы в Дубай из Екатеринбурга. Перелеты осуществляются по понедельникам, вторникам, средам, четвергам и воскресеньям.