Какие компании совершали перелеты на boeing поля в результирующей таблице name

Ниже представлены наши варианты решения заданий из онлайн тренажера на сайте SQL ACADEMY (sql-academy.org). Ответы на 66 заданий представленные в онлайн тренажере разбиты на 3 части. Здесь, в первой части, представлены ответы на первые 22 задания.

Ответы на задания 23-44 здесь.

Ответы на задания 45-66 будут тут.

Задание 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 COUNT(*) AS count
FROM Trip
WHERE plane = 'TU-134';

Задание 6. Какие компании совершали перелеты на Boeing

SELECT DISTINCT name 
FROM Company
JOIN Trip
   ON Company.id=Trip.company
WHERE plane = 'Boeing';

Задание 7. Вывести все названия самолётов, на которых можно улететь в Москву (Moscow)

SELECT DISTINCT plane 
FROM Trip
WHERE town_to = 'Moscow';

Задание 8. В какие города можно улететь из Парижа (Paris) и сколько времени это займёт?

SELECT town_to, TIMEDIFF(time_in, time_out) AS flight_time
FROM Trip
WHERE town_from = 'Paris';

Задание 9. Какие компании организуют перелеты с Владивостока (Vladivostok)?

SELECT DISTINCT name 
FROM Company
JOIN Trip
    ON Company.id=Trip.company
WHERE town_from = 'Vladivostok';

Задание 10. Вывести вылеты, совершенные с 10 ч. по 14 ч. 1 января 1900 г.

SELECT * FROM Trip
WHERE time_out 
    BETWEEN 
        '1900-01-01 10:00:00' 
    AND 
        '1900-01-01 14:00:00';

Задание 11. Вывести пассажиров с самым длинным именем

SELECT name 
FROM Passenger
WHERE LENGTH(name) = (SELECT MAX(LENGTH(name)) FROM Passenger);

Задание 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(name) > 1;

Задание 14. В какие города летал Bruce Willis?

SELECT DISTINCT town_to 
FROM Trip
JOIN Pass_in_trip
    ON Trip.id=Pass_in_trip.trip
JOIN Passenger
    ON Pass_in_trip.passenger=Passenger.id
WHERE name = 'Bruce Willis';

Задание 15. Во сколько Стив Мартин (Steve Martin) прилетел в Лондон (London)?

SELECT time_in
FROM Trip
JOIN Pass_in_trip
    ON Trip.id=Pass_in_trip.trip
JOIN Passenger
    ON Pass_in_trip.passenger=Passenger.id
WHERE name='Steve Martin' 
    AND town_to='London';

Задание 16. Вывести отсортированный по количеству перелетов (по убыванию) и имени (по возрастанию) список пассажиров, совершивших хотя бы 1 полет.

SELECT name, COUNT(*) AS count  
FROM Passenger
JOIN Pass_in_trip
    ON Passenger.id=Pass_in_trip.passenger
GROUP BY passenger
HAVING COUNT(trip) > 0
ORDER BY COUNT(trip) DESC, name;

Задание 17. Определить, сколько потратил в 2005 году каждый из членов семьи

SELECT member_name, status, SUM(amount*unit_price) AS costs 
FROM FamilyMembers
JOIN Payments
    ON FamilyMembers.member_id=Payments.family_member
WHERE YEAR(date) = 2005
GROUP BY member_name, status;

Задание 18. Узнать, кто старше всех в семьe

SELECT member_name
FROM FamilyMembers 
WHERE birthday = (SELECT MIN(birthday) FROM FamilyMembers);

Задание 19. Определить, кто из членов семьи покупал картошку (potato)

SELECT DISTINCT status
FROM FamilyMembers
JOIN Payments
    ON FamilyMembers.member_id=Payments.family_member
JOIN Goods
    ON  Payments.good=Goods.good_id
WHERE good_name = 'potato';

Задание 20. Сколько и кто из семьи потратил на развлечения (entertainment). Вывести статус в семье, имя, сумму

SELECT fm.status, fm.member_name, SUM(p.amount*p.unit_price) 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 gt
    ON g.type=gt.good_type_id
WHERE good_type_name = 'entertainment'
GROUP BY fm.status, fm.member_name;

Задание 21. Определить товары, которые покупали более 1 раза

SELECT good_name
FROM Goods
JOIN Payments
    ON Goods.good_id=Payments.good
GROUP BY good
HAVING COUNT(good) > 1;

Задание 22. Найти имена всех матерей (mother)

SELECT member_name
FROM FamilyMembers
WHERE status = 'mother';

Ответы на задания 23-44 здесь.

    • Actions

      Automate any workflow

    • Packages

      Host and manage packages

    • Security

      Find and fix vulnerabilities

    • Codespaces

      Instant dev environments

    • Copilot

      Write better code with AI

    • Code review

      Manage code changes

    • Issues

      Plan and track work

    • Discussions

      Collaborate outside of code

    • Explore
    • All features

    • Documentation

    • GitHub Skills

    • Blog

    • For
    • Enterprise

    • Teams

    • Startups

    • Education

    • By Solution
    • CI/CD & Automation

    • DevOps

    • DevSecOps

    • Case Studies
    • Customer Stories

    • Resources

    • GitHub Sponsors

      Fund open source developers

    • The ReadME Project

      GitHub community articles

    • Repositories
    • Topics

    • Trending

    • Collections

  • Pricing

SQL-Academy.org

Задание 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’;

Задание 39:

  1. SELECT COUNT(class) AS count FROM Student_in_class
    JOIN Class ON Class.id=class WHERE name LIKE ’10 B’;

  2. 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 id = 4;
SELECT 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 id = 4), (SELECT start_pair FROM Timepair WHERE id = 2)) 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 id = 4;
DELETE FROM Company WHERE id = 3;
DELETE FROM Company WHERE id = 2;

Задание 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;

введите сюда описание изображения

Вывести отсортированный по количеству перелетов (по убыванию) список пассажиров, совершивших хотя бы 1 полет.

Поля в результирующей таблице: name, count

Ссылка на задачу — https://sql-academy.org/ru/trainer/tasks/16

Попытка решения

SELECT name, COUNT(trip) as count
FROM
  Passenger
  JOIN Pass_in_trip on Passenger.id = Pass_in_trip.passenger
Where
  trip >= 1  
GROUP
  BY name
ORDER BY count DESC

Не понимаю в чем ошибка. Система говорит, что решение не верное, хотя мне кажется, что все верно.

nörbörnën's user avatar

nörbörnën

11.6k5 золотых знаков26 серебряных знаков38 бронзовых знаков

задан 15 окт 2020 в 9:43

Артем Власов's user avatar

1

Верным решением будет такой простой запрос (на db<>fiddle):

SELECT name, COUNT(*) as count
FROM Passenger
JOIN Pass_in_trip on Pass_in_trip.passenger = Passenger.id
JOIN Trip on Trip.id = Pass_in_trip.trip and Trip.time_out <= now()
GROUP BY Passenger.id, Passenger.name
HAVING COUNT(*) >= 1
ORDER BY count DESC

Не верно группировать только по имени пассажира, так как у разных людей имена могут совпадать, надо по идентификатору и имени.

0xdb's user avatar

0xdb

51.3k194 золотых знака56 серебряных знаков231 бронзовый знак

ответ дан 15 окт 2020 в 9:52

nörbörnën's user avatar

nörbörnënnörbörnën

11.6k5 золотых знаков26 серебряных знаков38 бронзовых знаков

1

Вот это правильный запрос. Не надо джоинить таблицу Trip

SELECT DISTINCT name, COUNT(Pass_in_trip.trip) as count FROM Passenger
LEFT JOIN  Pass_in_trip ON Passenger.id = Pass_in_trip.passenger
GROUP BY Passenger.id HAVING count >= "1"
ORDER BY count DESC;

ответ дан 18 окт 2020 в 12:07

Ильяс Гумаров's user avatar

SELECT name,COUNT(Trip.id) as count   
FROM Passenger 
JOIN Pass_in_trip ON Passenger.id=Pass_in_trip.passenger 
JOIN Trip on Trip.id=Pass_in_trip.trip
GROUP BY Passenger.name
HAVING COUNT(Trip.id)>=1
ORDER BY count desc,name ASC

0xdb's user avatar

0xdb

51.3k194 золотых знака56 серебряных знаков231 бронзовый знак

ответ дан 26 мар 2021 в 18:44

Irina's user avatar

IrinaIrina

111 бронзовый знак

2

Where
  trip >= 1

Pass_in_trip.trip соответствует полю Trip.id, т.е. вы проверяете тут, что id некоего перелёта в таблице перелётов >= 1, а вовсе не число перелётов конкретного пассажира, как вы думаете.

ответ дан 15 окт 2020 в 10:58

CrazyElf's user avatar

CrazyElfCrazyElf

63.9k5 золотых знаков19 серебряных знаков49 бронзовых знаков

У меня получился чуть более лаконичный ответ:

SELECT name, COUNT(name) as count from Passenger
INNER JOIN Pass_in_trip ON Passenger.id = Pass_in_trip.passenger
GROUP BY Passenger.id
ORDER BY count DESC 

В таблице Pass_in_trip уже только те пассажиры у которых был хоть 1 рейс, так что не нужно делать допонительные проверки и джоинить другие таблицы.

ответ дан 1 ноя 2020 в 16:53

neee's user avatar

neeeneee

11 бронзовый знак

SELECT name, COUNT(name) as count FROM Passenger, Pass_in_trip 
WHERE Pass_in_trip.passenger= Passenger.id  
GROUP BY name HAVING COUNT(count) >= 1 
ORDER BY  count  DESC

motpfofs's user avatar

motpfofs

1,2742 золотых знака9 серебряных знаков24 бронзовых знака

ответ дан 20 ноя 2020 в 9:14

anton's user avatar

1

Быстрая регистрация

После регистрации вы можете задавать вопросы и отвечать на них, зарабатывая деньги. Ознакомьтесь с правилами, будем рады видеть вас в числе наших авторов!

Создать аккаунт

  • На главную
  • О сайте
  • Дешёвые авиабилеты
  • Наши авторы
  • Визовые вопросы
  • Туризм в России
  • Египет
  • Турция
  • Авиабилеты и перелёты




Разбиться на самолете также маловероятно для среднестатистического человека, как и выиграть 100 млн долларов в лотерею. Поезда сходят с рельс, сталкиваются с другими составами, и по телевизору показывают далеко не все такие случаи. Если же случается авиакатастрофа, то об этом транслируется изо всех … Читать далее


Применение закрылок на самолетах является важным элементом конструкции, обеспечивающим множество преимуществ, как для самолета, так и для его пассажиров. Одним из главных преимуществ является улучшение аэродинамических характеристик самолета. 
Закрылки находятся на задней кромке крыла … Читать далее


Да, есть. Донское — аэропорт, расположенный в 10 км от Тамбова.


Для самолета, в котором перемещается большое количество пассажиров одновременно, главное это обеспечить их безопасность. И скорость ветра напрямую влияет на безопасность полетов. Как правило, большинство самолетов выполняют взлеты с взлетно-посадочной полосы при скорости ветра, которая ниже 12 … Читать далее


Самолет оставляет след в небе потому что за бортом самолета низкая температура. В процессе полета двигатель самолета выбрасывает горячие струи газа и пара. Из-за разности температур пар превращается в холодные кристаллики льда и конденсат. Это что то в виде тумана. Вот этот туман мы можем наблюдать … Читать далее


Доброго времени суток! Конечно, да. При путешествиях на самолёте термос можно вести и в багаже, и в ручной клади. Но при перевозке в ручной клади он обязательно должен быть без жидкости внутри. По правилам, в салон самолёта нельзя проносить жидкости объемом более 100 мл. Советую также брать … Читать далее


Для начала нужно понять, возможно это Вам вообще не нужно. 90% людей никогда не летали и им это не нужно. Если же все таки нужно, то нужно просто сделать какой-то пробный рейс, хотя бы на пару часов. Пролететь, преодолеть свои страхи и тогда проблем не будет. Я в свое время прыгнул с парашюта и … Читать далее


Разгерметизация самолета в воздухе — это совершенно ужасное событие, когда лайнер теряет герметичность внутри кабины во время полета. Эта отвратительная ситуация может возникнуть по ряду причин, включая утечку воздуха через брешь в корпусе самолета или открытие дверей.
И если ты не думал, что это … Читать далее


Перед полетом на самолете обычно говорят много разной информации, но в общем случае это может быть следующее:
Приветствие и объявление о начале посадки.
Прохождение процедур безопасности, включая демонстрацию инструкций по безопасности на борту, инструкции по использованию жилетов спасения … Читать далее


Взлет самолета против ветра — один из самых критических моментов полета, и он важен для безопасности и эффективности полетов. Взлет против ветра позволяет увеличить скорость воздушного потока над крылом, что создает больше подъемной силы и позволяет самолету взлетать на меньшей скорости, что … Читать далее

SQL ACADEMY ответы и решения заданий (часть 1, задания 1-22)

SQL Academy (ответы и решения заданий 1-22)

SQL Academy (ответы и решения заданий 1-22)

Ниже представлены наши варианты решения заданий из онлайн тренажера на сайте SQL ACADEMY (sql-academy.org). Ответы на 66 заданий представленные в онлайн тренажере разбиты на 3 части. Здесь, в первой части, представлены ответы на первые 22 задания.

Ответы на задания 45-66 будут тут.

Задание 1. Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний.

Задание 2. Вывести названия всеx авиакомпаний.

Задание 3. Вывести все рейсы, совершенные из Москвы

Задание 4. Вывести имена людей, которые заканчиваются на “man”

Задание 5. Вывести количество рейсов, совершенных на TU-134

Задание 6. Какие компании совершали перелеты на Boeing

Задание 7. Вывести все названия самолётов, на которых можно улететь в Москву (Moscow)

Задание 8. В какие города можно улететь из Парижа (Paris) и сколько времени это займёт?

Задание 9. Какие компании организуют перелеты с Владивостока (Vladivostok)?

Задание 10. Вывести вылеты, совершенные с 10 ч. по 14 ч. 1 января 1900 г.

Задание 11. Вывести пассажиров с самым длинным именем

Задание 12. Вывести id и количество пассажиров для всех прошедших полётов

Задание 13. Вывести имена людей, у которых есть полный тёзка среди пассажиров

Задание 14. В какие города летал Bruce Willis?

Задание 15. Во сколько Стив Мартин (Steve Martin) прилетел в Лондон (London)?

Задание 16. Вывести отсортированный по количеству перелетов (по убыванию) и имени (по возрастанию) список пассажиров, совершивших хотя бы 1 полет.

Задание 17. Определить, сколько потратил в 2005 году каждый из членов семьи

Задание 18. Узнать, кто старше всех в семьe

Задание 19. Определить, кто из членов семьи покупал картошку (potato)

Задание 20. Сколько и кто из семьи потратил на развлечения (entertainment). Вывести статус в семье, имя, сумму

Задание 21. Определить товары, которые покупали более 1 раза

IvanPadoltsev / SQL-Academy Goto Github PK

Задание 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%’;

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%’;

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;

dron_sd

15 июля 2016 года исполнилось 100 лет с момента основания одной из самых больших авиастроительных компаний мира, американской корпорации BOEING. Уже целый век эта компания трудится над созданием авиационной и космической техники. За это время Boeing переживал взлеты и падения, был на грани разорения и чудом поднимался обратно на ноги. Я предлагаю вашему вниманию историю развития корпорации BOEING. Рассказ состоит из 4-х частей. В этой речь пойдет о винтовых самолетах компании. Ссылки на другие части находятся ниже:
История компании Boeing. Часть 2 – “Век высоких скоростей”
История компании Boeing. Часть 3 – “Прогрессивные технологии”
История компании Boeing. Часть 4 – “Композитный самолет”
1.

Основатель компании Уильям Эдвард Боинг (William Edward Boeing) родился 1 октября 1881 года в городе Detroit, штат Мичиган. Ему было 28 лет, когда он впервые увидел полет аэроплана. Это случилось в январе 1910 года, когда Билл Боинг пошел на авиашоу в Los Angeles. Он влюбился в самолеты с первого взгляда. У него были другие увлечения, и на жизнь он зарабатывал в другой сфере. Он занимался торговлей лесоматериалами на тихоокеанском северо-западе и уже был состоятельным человеком. Но тот самый момент перевернул всю его жизнь. Чудо полета притягивало его. И он понимал, что эта конструкция из дерева, проволоки и ткани однажды станет неотъемлемой частью повседневной жизни, как железная дорога и автомобили.
2.

Его родители Вильгельм (Wilhelm) и Мария (Marie) Bőing. В 1888 году отец изменил фамилию, когда стал директором Peoples Savings банка в городе Detroit. Немецкое “ő” в фамилии он поменял на американское “oe”. Его супруга Мария была дочкой его партнера по бизнесу.
3.

После своего первого полета на самолете Уильям Боинг стал искать способы усовершенствования авиатехники. Он всегда стремился к инновациям. В 1916 году Боинг со своим другом военно-морским инженером Конрадом Уэстервельтом (Conrad Westervelt) спроектировали и построили свой первый самолет B&W, названный по первым буквам их фамилий. Это был легкий гидросамолет, имеющий полотняно-деревянную конструкцию типа биплан с крыльями разного размаха и элеронами на верхнем крыле. Бипланная коробка состояла из большого количества стоек и проволочных растяжек. Нижнее крыло крепилось непосредственно к фюзеляжу, в котором тандемно располагались две открытые кабины пилотов. Хвостовое оперение имело типичную для того времени подкосно-расчалочную схему. Двигатель Hall-Scott A-5, установленный в носовой части фюзеляжа, приводил в движение тянущий воздушный винт. Шасси включало два однореданных поплавка, которые крепились в нижней части фюзеляжа с помощью ферменной конструкции и расчалок, а также маленький поплавок под хвостовой частью.
4.

15 июня 1916 года Уильям Боинг впервые поднял этот самолет в воздух. В надежде получить контракт с военными, Боинг показал этот самолет военно-морскому флоту США. Однако они не заинтересовались им. Но Уильям все же продал первые два самолета в Новую Зеландию. Первый носил имя “Bluebill”, а второй “Mallard”. Они использовались для доставки почты и военных полетов. В 1924 году они были уничтожены. В музее авиации «Museum of Flight» в городе Seattle имеется копия самолета B&W, которая была построена в 1966 году к 50-летнему юбилею компании Boeing.
5.

6.

15 июля 1916 года Уильям Боинг со своим другом Конрадом Уэстервельтом основали компанию “Pacific Aero Products Company” для производства своих собственных самолетов. 9 мая 1917 года фирма была переименована в “Boeing Airplane Company”. В США и в Европе были десятки мастерских подобных этой компании. Чаще всего в них брали за основу самолет братьев Райт и дорабатывали его.

Первый офис компании Boeing располагался в сооружении бывшей лодочной верфи на берегу реки Duwamish и за свой цвет получил название Red Barn (Красный Амбар). Производство самолетов и бухгалтерия находились на первом этаже.
7.

А инженеры на втором.
8.

Здание использовалось компанией с момента основания в 1916 году и до 1970 года.
9.

16 декабря 1975 года здание было перевезено по реке Duwamish к аэродрому Boeing Field и стало частью музея авиации «Museum of Flight» в городе Seattle.
10.

Уильям Боинг умел находить и хороших управленцев и талантливых конструкторов. В мае 1916 году компания наняла своего первого авиационного конструктора – Вонг Тсу (Wong Tsu).
11.

Первым заказчиком компании Boeing стала американская армия. Конструктор Вонг Тсу принял участие в разработке самолета Model C. Он был аналогичен первым самолетам B&W, но верхнее крыло с увеличенным поперечным «V» было вынесено вперед, а внутренние стойки изменены. Кроме того, было переделано хвостовое оперение: задний поплавок и неподвижная часть стабилизатора убраны, а перед рулем направления добавлен неподвижный киль. Флот заказал 50 учебно-тренировочных аппаратов. Но окончание первой мировой войны в 1918 году продемонстрировало непостоянство авиационного бизнеса. Военные приобрели только два самолета. Заказы иссякли, и две третьих рабочих пришлось распустить. Сама компания на время занялась производством мебели.

После первой мировой войны появилась необходимость в быстрой доставке почты по всей армерике. Договоры о перевозке почтовой корреспонденции привели к появлению внутренних авиакомпаний. В то время не было сети федеральных автострад. Поэтому самолеты были очень востребованы. Даже несмотря на то, что авиация того времени была очень ненадежной, а погодные условия усложняли выполнение полетов, авиапочта обещала стать прибыльным бизнесом. В 1919 году Боинг лично совершил полет из города Seattle в Канадский Vancouver, установив первый международный авиамаршрут. В 20-е годы единственным двигателем авиапромышленности были контракты на перевозку почты. За счет них авиапроизводители выживали.

Для перевозки почты компания Boeing создала Model 40. Это был первый гражданский самолет, воплотивший идею Уильяма о достижении конкурентного преимущества путем создания самых передовых моделей своего времени. Прототип этого самолета впервые поднялся в воздух 7 июля 1925 года.
12.

13.

Каркас из стальных труб и двигатель воздушного охлаждения сделали самолет почти на 100 кг легче конкурентов. С Model 40 Боинг выиграл государственный контракт на перевозку почты между San Francisco в Chicago, обеспечив своей компании первое место в этой сфере. Вскоре стали появляться и другие маршруты.
14.

В фюзеляже 40-й модели Boeing кроме пилота могли поместиться два человека. Но со временем состоятельные люди стали рассматривать воздушные путешествия всерьез. Всего через 14 месяцев после Model 40 фирма Boeing представила Model 80. Это был первый самолет компании Boeing, разработанный специально для пассажиров. 12 человек могли разместиться на кожаных сиденьях в теплом комфортабельном салоне, где имелись индивидуальные лампы для чтения, а та же горячая и холодная вода. Кабина пилотов впервые была сделана закрытой и отделена от пассажирского салона. В 80-й модели впервые появились бортпроводницы. Это были медсестры, которые ухаживали за пассажирами и успокаивали тех, кто боялся летать. Состоятельные люди стали передвигаться по воздуху. В новой модификации Model 80A количество пассажиров увеличилось до 18. Всего было построено 12 самолетов разных модификаций.
15.

16.

Уильям Боинг затеял объединить несколько компаний в одну. Зачем строить самолеты, если у тебя нет авиакомпании, которая будет на них летать? Это был прообраз современных корпораций. Сначала Боинг приобрел производство двигателей Pratt & Whitney. Затем основанная им новая компания “United Aircraft & Transport Corporation” начала скупать более мелкие авиационные предприятия, всего за несколько лет превратившись в невероятно успешный авиахолдинг, процветавший даже во времена общего кризиса в стране. Боинг скупал других перевозчиков и объединял их маршруты в национальную сеть, которая вскоре выполняла 50% всех почтовых и пассажирских перевозок в США, образовав компанию United Airlines. Сейчас странно себе представить, чтобы производитель самолетов владел еще и авиакомпанией. Но тогда это было естественно.

Boeing производила самые передовые самолеты тех времен. В 30-е годы компания принялась за разработку самолета революционной конструкции. Boeing 247 стал первым современным пассажирским лайнером. Он прошел полный цикл статических испытаний. Имел винты с изменяемым шагом, отапливаемый салон, убирающиеся шасси, антиобледенительные устройства на крыле и хвосте, триммеры и автопилот. Салон был оборудован звуко- и теплоизоляцией. Это был первый двухдвигательный самолет, который мог продолжать полет при отказе одного двигателя, а посадочная скорость в 100 км/ч позволила отказаться от механизации крыла.
17.

18.

19.

Наклоненное вперед лобовое остекление кабины было попыткой избавиться от бликов на нем от освещения приборной панели. Однако такое решение вызывало блики посадочных огней на ВПП. Поэтому на более поздних моделях остекление кабины приобрело традиционные очертания, а проблему бликов от приборной панели решили применением традиционных теперь козырьков на приборной панели.
20.

Это был огромный скачек вперед. Для компании United Airlines строилось 60 таких самолетов.
21.

Другим авиакомпаниям приходилось стоять в очереди, пока United Airlines не получит свои самолеты. Это заставило их обратиться к другим производителям с задачей построить самолет лучше этого. Авиакомпании TWA (Trans World Airlines), American Airlines и KLM обратились к конкуренту компании Boeing – компании Douglas Aircraft и ее основателю Дональду Дугласу (Donald Douglas). Борьба Боинга и Дугласа стала величайшим противостоянием в американском авиастроении. Однако Боинг отстал в этой гонке. Ведь одних передовых идей уже было не достаточно. Дуглас взял все передовые конструкторские идеи 247-й модели и существенно развил их. Усовершенствовал конструкцию, провел более тщательные испытания в аэродинамической трубе. Так появился DC-1. Затем вышли новые модификации DC-2 и DC-3. Они имели огромный успех и стали доминировать в отрасли. Авиакомпании закупали сотни этих моделей, а 247-й был забыт. На фото DC-3.
22.

Однако у Уильяма Боинга по прежнему оставались контракты на почтовые перевозки, а так же авиакомпания, перевозившая с каждым годом все больше пассажиров. Но именно они со временем обернулись против Уильяма. Во времена депрессии успех вызывал подозрения. “United Aircraft & Transport C orporation” процветала и контролировала 50% рынка. Поэтому люди предположили что все дело в коррупции. В 1933 году за свержение гиганта взялся сенатор Хьюго Блэк (Hugo Black), который обвинил Boeing в сговоре с почтовыми отделениями с целью получения контрактов. Сенатор обвинил их в том, что они наживаются за счет налогоплательщиков. Он требовал, чтобы контракты были расторгнуты, а компания “United Aircraft & Transport Corporation” расформирована.

Уильям Боинг был вызван для дачи показаний в суд. Его допрашивали почти 6 часов. А потом обвинили в том, что он незаконно наживается на почтовых контрактах. Решение конгресса было беспощадным. Холдинги было приказано разбить. Поскольку слияние авиастроительных фирм и авиакомпаний давало их владельцам слишком большую власть. Новые правила гласили, что авиастроитель не может быть одновременно авиаперевозчиком. Это привело к развалу холдинга Boeing, который создавался с большим трудом. Однако президент Франклин Рузвельт (Franklin Roosevelt) пошел еще дальше. Он приказал министру связи отменить все контракты с авиакомпаниями на перевозу почты. Планировалось, что впредь почту будут доставлять вооруженные силы. 83 компании лишились контрактов. Но у армейской авиации не было ни опыта, ни подходящих самолетов. И вскоре при перевозке почты военными произошло 12 катастроф и более 60 аварий. Отлаженная авиатранспортная система страны практически развалилась. Но когда через несколько месяцев Рузвельт осознал ошибку своего решения и отменил его, компания Boeing была разрушена. Сам Уильям Боинг отошел от дел. Он оставил авиационный бизнес, продал свой пакет акций и занялся разведением лошадей. В конце жизни он уединился на собственной яхте у берегов Канады, где и умер 28 сентября 1956 года, не дожив до своего 75-летия всего три дня.

Первыми на перевозке пассажиров, а не почты стали зарабатывать самолеты компании Douglas. Авиаперевозки достигли определенного уровня безопасности, комфорта и изысканности, что поменяло взгляды людей на этот способ передвижения. Полеты стали не испытанием, а удовольствием. Но они все еще оставались привилегий богачей. Владельцы авиакомпаний быстро поняли, что для привлечения пассажиров нужно превзойти конкурентов. В моду вошли роскошные элементы интерьера.

В 1936 году авиакомпания Pan American World Airways, настроенная осуществлять первые трансатлантические перелеты, обратилась ко всем ведущим авиапроизводителям Америки с задачей спроектировать самолет, который удовлетворял бы следующим параметрам: он должен был быть способен перевозить 4,5 тонны грузов и 70 пассажиров, развивать скорость 240 км/ч при встречном ветре 50 км/ч и иметь дальность беспосадочного полета 3100 км. Требования были так амбициозны, что некоторые компании просто не взялись за разработку. Но инженеры компании Boeing использовали необычный подход для создания нового самолета. Они представили его в виде лодки. Под палубой конструкторы разместили 11 водонепроницаемых отсеков, расположенных между двумя корпусами. Даже если внешний корпус даст течь, вода не попадет во внутренний корпус и не потопит лодку. Самолет был оснащен якорем и спасательными плотами. Проект получил название Boeing 314 “Clipper”. После того, как компания Boeing прислала эскизы авиакомпании Pan American, 21 июля 1936 года они подписали контракт на постройку 6-и самолетов, которые позволили авиакомпании Pan American открыть первую грузовую и пассажирскую линию через Атлантику. Первый полет новой машины состоялся 7 июня 1938 года. Этот самолет стал символом роскоши в авиаперевозках. Его салон был оснащен кондиционером и отдельным баром. Пассажирские кресла могли раскладываться и использоваться как спальные полки. На борту имелась комната отдыха и ресторан, обслуживаемый стюардами. Еда сервировалась на фарфоровой посуде с серебряными столовыми приборами. Однако всего было построено только 12 самолетов. Каждый из них имел собственное имя. К сожалению, до наших дней не сохранилось ни одного. Поэтому фотографию этой машины я взял из интернета.
23.

В 30-е годы компания Boeing переживала тяжелейший кризис. Количество сотрудников было сокращено с 1700 до 700 человек. В эпоху золотого века авиации на рынке доминировала компания Douglas Aircraft.

Но 22 августа 1934 года в компанию пришел официальный циркуляр от армии США. Boeing вместе с Douglas Aircraft и Lockheed Corporation пригласили принять участие в конкурсе на создание нового бомбардировщика. Армии требовался многомоторный аппарат, способный перевозить тонну бомб и покрывать расстояние до 3500 км со скоростью более 320 км/ч. Победитель конкурса получал заказ на 200 самолетов. Для компании Boeing это был последний шанс. Опытный образец B-17 был спроектирован и построен всего за 11 месяцев. Это был самолет нового уровня. Один из журналистов назвал его “Летающей крепостью” (“Flying Fortress”) и прозвище закрепилось.
24.

25.

На испытаниях было очевидно, что самолет отвечает всем требованиям военных. Однако в предпоследний день испытаний произошла катастрофа. Самолет оторвался от земли, а через какое-то время рухнул на землю и загорелся. Двое летчиков погибли. Расследование показало, что в B-17 не было механических проблем. Катастрофа случилась из-за ошибки. Опытный образец был оснащен устройством блокировки руля высоты на земле. А летчик-испытатель взлетел, не сняв блокировку. Boeing проиграл. Конкурс выиграла компания Douglas Aircraft. Но компания создала самолет, настолько превосходивший конкурентов, что представители армейской авиации убедили командование купить эскадрилью B-17. ВВС заказали 13 бомбардировщиков. Этот заказ удержал Boeing на плаву.
26.

Одновременно с B-17 копания разработала пассажирский вариант самолет, получивший название Boeing 307 “Stratoliner”. Впервые в истории гражданской авиации на самолете был выполнен герметизированный фюзеляж, позволявший лететь на высоте 7500 — 7800 метров, выше грозовых облаков. Плохая погода была тогда главной помехой пассажирским перевозкам. Высота, на которой должен был летать 307-й , была по тем временам огромной. Boeing 307 стал первым пассажирским самолетом в мире с герметичной кабиной. Крыло, хвостовое оперение, двигатели и шасси были целиком взяты от В-17. Фюзеляж же был полностью новым. Он имел круглое сечение, чтобы давление воздуха на большой высоте распределялось равномерно. Самолет был рассчитан на 33 пассажира. Система герметизации фюзеляжа с наддувом от двух компрессоров, приводимых от внутренних двигателей через коробки отбора мощности и промежуточные валы, обеспечивала на высоте 7000 метров давление в салоне, равное атмосферному давлению на высоте 3600 метров.
27.

31 декабря 1938 года самолет впервые поднялся в воздух. Однако он не вызвал особого интереса у авиакомпаний. Они осторожничали, не зная, как поведет себя новый герметичный фюзеляж.
28.

18 марта 1939 года прототип “Stratoliner” потерпел катастрофу. Погибли все находившиеся на борту. По словам очевидцев трагедии, самолет развалился в воздухе. Анализ показаний контрольно-записывающей аппаратуры позволил выяснить, что произошло. Злополучный полет имел целью проверить путевую устойчивость самолета при отказе одного двигателя. После выключения одного из внешних двигателей самолет потерял скорость и свалился в штопор, а при попытке выйти из него крыло не выдержало перегрузки и разрушилось. Оказалось, что элероны и руль направления были слишком малы и практически бесполезны при выводе из штопора. Киль, позаимствованный с В-17, тоже был мал. Срочно требовалась переделка. На оставшиеся машины срочно поставили увеличенный киль с мощным форкилем, доработали элероны, а на внешних консолях крыла установили предкрылки.
29.

Репутация самолета еще более ухудшилась после того, как один из самолетов в приемочном полете для авиакомпании попал в сильную грозу на высоте 6000 метров. Все четыре двигателя заглохли из-за обледенения карбюраторов. Этот недостаток впоследствии также был устранен. Однако эти два случая сделали свое дело: новых заказов на Boeing 307 больше не поступало.
30.

Всего было построено 10 самолетов. На сегодняшний день сохранился только один. Лайнер с бортовым номером NC-19903 и именем “Clipper Flying Cloud” летал до 70-х годов. Сейчас он установлен в национальном музее авиации США.
31.

Компания Boeing была в тяжелом положении. Почто 10 лет ее самолеты не приносили прибыль. Но война все изменила. Шедшая в Европе война потребовала подготовиться к защите своей страны и помочь защитить союзников. Президент Рузвельт потребовал построить 50 000 самолетов. В тот момент вся военная авиация США состояла из 1200 самолетов. Это заставило конкурирующие компании Boeing, Douglas Aircraft и Lockheed Corporation объединиться. Одних только B-17 было заказано 12 000 единиц. Это изменило всю авиапромышленность Америки. Самолеты выпускались с конвейера по 12-15 штук в день.
32.

Противостояние Японии на тихом океане потребовало бомбардировщик с дальностью полета больше чем у B-17. И во время войны компания Boeing разработала новый бомбардировщик B-29, известный как “Суперкрепость” (“Superfortress”). По дальности полета и бомбовой нагрузке он превосходил любой самолет того времени. Командование приказало в течении 2-х лет наладить производство 25-и самолетов в месяц. Всего за 18 месяцев в городе Wichita, штат Канзас был построен огромный завод. B-29 сильно отличался от B-17. Его кабина была герметичной. Он был оснащен самой передовой авионикой, радиолокационными системами и пушками с дистанционным управлением. К лету 1944 года заводы производили более 50 самолетов B-29 в месяц. Они сыграли большую роль в войне с Японией.

33.

Самолет B-29 стал участником событий, аналогов которым нет в мировой истории. 6 августа 1945 года бомбардировщик с прозвищем “ Enola Gay ”, преодолев 2500 км, сбросил на город Хиросима первую атомную бомбу “Малыш” (“Little Boy”). Через несколько дней 9 августа была сброшена вторая бомба “Толстяк” (“Fat Man”) на Нагасаки. Сейчас B-29 “ Enola Gay ” находится в национальном музее авиации США.
34.

35.

В годы Второй мировой войны приоритет отдавался боевым самолетам, а транспортная авиация финансировалась по остаточному принципу. Однако руководство компании Boeing опасалось, что после войны может упустить рынок гражданской авиатехники. К 20 июля 1942 года компания завершила предварительные работы по проекту военно-транспортного самолета C-97 “Stratofreighter”, отличавшегося от базового B -29 в основном конструкцией фюзеляжа. Машина создавалась двухпалубной. Нижняя часть фюзеляжа B -29 была сохранена. Вместо бомбоотсеков были оборудованы грузовые палубы. Сверху к сечению фюзеляжа был “пристроен” еще один фюзеляж с окружностью диаметром 3,35 метра. В результате самолет из среднеплана превратился в низкоплан, а новый фюзеляж приобрел характерное сечение в виде восьмерки или “ D ouble-bubble” (“Двойной пузырь”). Вдоль бортов появились характерные глубокие складки.
36.

37.

Первый прототип самолета “Stratofreighter” поднялся в небо 9 ноября 1944 года. А первый серийный самолет был введен в эксплуатацию в 1947 году. Транспортник мог брать до 18,5 тонн груза, погрузка которого осуществлялась через задний грузовой люк, а при помощи электролебедки груз перемещался по протянувшимся направляющим через всю 24-метровую кабину. Автомобили или легкая бронетехника заезжала на грузовую палубу самостоятельно. Самолет мог брать на борт не менее 134 военнослужащих, а в медико-эвакуационном варианте – 83 раненых на носилках и четырех медработников.

В 50-е годы Стратегическое авиационное командование (САК) ВВС США остро нуждалось в большом количестве танкеров для дозаправки стратегических бомбардировщиков в полете. Поэтому компания Boeing провела цикл испытаний, установив на трех самолетах C-97 систему дозаправки в воздухе “Flying Boom” собственной разработки, а затем приступила к выпуску серийных самолетов-заправщиков КС-97. В 1964 году часть самолетов была дооборудована двумя турбореактивными двигателями General Electric J47-GE-25A. В итоге воздушный танкер имел 4 основных поршневых двигателя и 2 вспомогательных турбореактивных. Самолет получил обозначение KC-97L. Он был принят на вооружение ВВС Национальной гвардии США. Именно этот самолет я встретил в музее военной авиационной техники “Castle Air Museum” в городе Atwater, штат Калифорния.
38.

На базе военно-транспортного самолета C-97 “Stratofreighter” был создан его пассажирский вариант – Boeing 377 “Stratocruiser”. Он был рассчитан на 55-100 человек в зависимости от планировки салона. На “нижней палубе” за крылом имелся дополнительный салон на 14 мест, куда можно было спуститься по винтовой лестнице. Этот салон использовался как бар, а не для размещения дополнительных пассажиров. Были предусмотрены женский и мужской туалеты, а кухонный блок, размещенный в хвостовой части салона, был по тем временам самым совершенным. Первый заказ на 20 самолетов поступил от авиакомпании Pan American World Airways.
39.

“Stratocruiser” поставлялся шести авиакомпаниям. Northwest Orient Airlines заказала десять самолетов Boeing 377. Их особенностью были не круглые, а квадратные окна пассажирского салона. Руководство авиакомпании считало, что круглые окна очень уж смахивают на корабельные иллюминаторы и не дают пассажирам достаточного обзора. Boeing 377 был, пожалуй, единственным в мире пассажирским самолетом, у которого форму окон определял покупатель.
40.

Всего было построено 55 самолетов Boeing 377 “Stratocruiser”. Пассажирская версия оказалась менее популярной, чем транспортная, а уж тем более чем самолеты воздушной дозаправки. C -97 “Stratofreighter” был построен в количестве 77 экземпляров, а дозоправщик KC-97 в количестве 811 экземпляров. Я пока так и не встретил ни одного из самолетов Boeing 377 “Stratocruiser” в своей жизни.

Интересным фактом является то, что на базе пассажирского Boeing 377 в начале 60-х годов фирма Aero Spacelines создала транспортный самолет для перевозки негабаритных грузов “Pregnant Guppy”. Он совершил первый полет 19 сентября 1962 года. А в 1965 году в небо поднялся его увеличенный вариант “Super Guppy”. В 1967 году французская фирма Aerospatiale приобрела два самолета для транспортировки частей строящихся авиалайнеров. Позже Airbus приобрел лицензию на производство и в начале восьмидесятых годов было построено еще два экземпляра “Super Guppy”. Они использовались для доставки крупногабаритных частей на завод окончательной сборки в Тулузе. В 90-х годах их заменили специально спроектированными самолетами Airbus A300-600ST “Beluga”.
41.

Ссылка на вторую часть находится здесь. В ней речь пойдет о реактивных самолетах компании Boeing.

IvanPadoltsev / SQL-Academy Goto Github PK

Задание 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%’;

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%’;

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;

Авиаперевозки
Описание демонстрационной базы данных

Представляем вам демонстрационную базу данных для СУБД PostgreSQL. В этом документе описана схема данных, состоящая из восьми таблиц и нескольких представлений. В качестве предметной области выбраны авиаперевозки по России. Базу данных можно скачать с нашего сайта, см. раздел «Установка».

База данных может использоваться, например,

  • для самостоятельного изучения языка запросов SQL,
  • для подготовки книг, пособий и учебных курсов по языку SQL,
  • для демонстрации возможностей PostgreSQL в статьях и заметках.

При разработке демонстрационной базы данных мы преследовали несколько целей:

  • схема данных должна быть достаточно простой, чтобы быть понятной без особых пояснений,
  • в то же время схема данных должна быть достаточно сложной, чтобы позволять строить осмысленные запросы,
  • база данных должна быть наполнена данными, напоминающими реальные, с которыми будет интересно работать.

Демонстрационная база данных распространяется под лицензией PostgreSQL.
Свои замечания и пожелания направляйте нам по адресу edu@postgrespro.ru.

Установка

Установка с сайта

Демонстрационная база данных доступна на edu.postgrespro.ru в трех версиях, которые отличаются только объемом данных:

    (21 МБ) — данные по полетам за один месяц (размер БД 265 МБ), (62 МБ) — данные по полетам за три месяца (размер БД 666 МБ), (232 МБ) — данные по полетам за год (размер БД 2502 МБ).

Небольшая база годится для того, чтобы писать запросы, и при этом не займет много места на диске. База большого размера позволит почувствовать, как ведут себя запросы на больших объемах данных, и задуматься об оптимизации.

Файлы содержат SQL-скрипт, создающий базу данных «demo» и наполняющий ее данными (фактически, это резервная копия, созданная утилитой pg_dump). Обратите внимание, что при установке существующая база данных «demo» будет удалена и создана заново! Владельцем базы данных «demo» станет пользователь СУБД, выполнявший скрипт.

Диаграмма схемы данных

Описание схемы

Основной сущностью является бронирование (bookings).

В одно бронирование можно включить несколько пассажиров, каждому из которых выписывается отдельный билет (tickets). Билет имеет уникальный номер и содержит информацию о пассажире. Как таковой пассажир не является отдельной сущностью. Как имя, так и номер документа пассажира могут меняться с течением времени, так что невозможно однозначно найти все билеты одного человека; для простоты можно считать, что все пассажиры уникальны.

Билет включает один или несколько перелетов (ticket_flights). Несколько перелетов могут включаться в билет в случаях, когда нет нет прямого рейса, соединяющего пункты отправления и назначения (полет с пересадками), либо когда билет взят «туда и обратно». В схеме данных нет жесткого ограничения, но предполагается, что все билеты в одном бронировании имеют одинаковый набор перелетов.

Каждый рейс (flights) следует из одного аэропорта (airports) в другой. Рейсы с одним номером имеют одинаковые пункты вылета и назначения, но будут отличаться датой отправления.

При регистрации на рейс пассажиру выдается посадочный талон (boarding_passes), в котором указано место в самолете. Пассажир может зарегистрироваться только на тот рейс, который есть у него в билете. Комбинация рейса и места в самолете должна быть уникальной, чтобы не допустить выдачу двух посадочных талонов на одно место.

Количество мест (seats) в самолете и их распределение по классам обслуживания зависит от модели самолета (aircrafts), выполняющего рейс. Предполагается, что каждая модель самолета имеет только одну компоновку салона. Схема данных не контролирует, что места в посадочных талонах соответствуют имеющимся в самолете (такая проверка может быть сделана с использованием табличных триггеров или в приложении).

Объекты схемы

Список отношений

Каждая модель воздушного судна идентифицируется своим трехзначным кодом (aircraft_code). Указывается также название модели (model) и максимальная дальность полета в километрах (range).

Аэропорт идентифицируется трехбуквенным кодом (airport_code) и имеет свое имя (airport_name).

Для города не предусмотрено отдельной сущности, но название (city) указывается и может служить для того, чтобы определить аэропорты одного города. Также указывается широта (longitude), долгота (latitude) и часовой пояс (timezone).

При регистрации на рейс, которая возможна за сутки до плановой даты отправления, пассажиру выдается посадочный талон. Он идентифицируется также, как и перелет — номером билета и номером рейса.

Посадочным талонам присваиваются последовательные номера (boarding_no) в порядке регистрации пассажиров на рейс (этот номер будет уникальным только в пределах данного рейса). В посадочном талоне указывается номер места (seat_no).

Пассажир заранее (book_date, максимум за месяц до рейса) бронирует билет себе и, возможно, нескольким другим пассажирам. Бронирование идентифицируется номером (book_ref, шестизначная комбинация букв и цифр).

Поле total_amount хранит общую стоимость включенных в бронирование перелетов всех пассажиров.

Естественный ключ таблицы рейсов состоит из двух полей — номера рейса (flight_no) и даты отправления (scheduled_departure). Чтобы сделать внешние ключи на эту таблицу компактнее, в качестве первичного используется суррогатный ключ (flight_id).

Рейс всегда соединяет две точки — аэропорты вылета (departure_airport) и прибытия (arrival_airport). Такое понятие, как «рейс с пересадками» отсутствует: если из одного аэропорта до другого нет прямого рейса, в билет просто включаются несколько необходимых рейсов.

У каждого рейса есть запланированные дата и время вылета (scheduled_departure) и прибытия (scheduled_arrival). Реальные время вылета (actual_departure) и прибытия (actual_arrival) могут отличаться: обычно не сильно, но иногда и на несколько часов, если рейс задержан.

Статус рейса (status) может принимать одно из следующих значений:

  • Scheduled
    Рейс доступен для бронирования. Это происходит за месяц до плановой даты вылета;
    до этого запись о рейсе не существует в базе данных.
  • On Time
    Рейс доступен для регистрации (за сутки до плановой даты вылета) и не задержан.
  • Delayed
    Рейс доступен для регистрации (за сутки до плановой даты вылета), но задержан.
  • Departed
    Самолет уже вылетел и находится в воздухе.
  • Arrived
    Самолет прибыл в пункт назначения.
  • Cancelled
    Рейс отменен.

Места определяют схему салона каждой модели. Каждое место определяется своим номером (seat_no) и имеет закрепленный за ним класс обслуживания (fare_conditions) — Economy, Comfort или Business.

Перелет соединяет билет с рейсом и идентифицируется их номерами.

Для каждого перелета указываются его стоимость (amount) и класс обслуживания (fare_conditions).

Билет имеет уникальный номер (ticket_no), состоящий из 13 цифр. Билет содержит идентификатор пассажира (passenger_id) — номер документа, удостоверяющего личность, — его фамилию и имя (passenger_name) и контактную информацию (contact_date). Ни идентификатор пассажира, ни имя не являются постоянными (можно поменять паспорт, можно сменить фамилию), поэтому однозначно найти все билеты одного и того же пассажира невозможно.

Над таблицей flights создано представление flights_v, содержащее дополнительную информацию:

  • расшифровку данных об аэропорте вылета
    (departure_airport, departure_airport_name, departure_city),
  • расшифровку данных об аэропорте прибытия
    (arrival_airport, arrival_airport_name, arrival_city),
  • местное время вылета
    (scheduled_departure_local, actual_departure_local),
  • местное время прибытия
    (scheduled_arrival_local, actual_arrival_local),
  • продолжительность полета
    (scheduled_duration, actual_duration).

Материализованное представление bookings.routes

Таблица рейсов содержит избыточность: из нее можно было бы выделить информацию о маршруте (номер рейса, аэропорты отправления и назначения), которая не зависит от конкретных дат рейсов.

Именно такая информация и составляет материализованное представление routes.

Функция now

Демонстрационная база содержит временной «срез» данных — так, как будто в некоторый момент была сделана резервная копия реальной системы. Например, если некоторый рейс имеет статус Departed, это означает, что в момент резервного копирования самолет вылетел и находился в воздухе.

Позиция «среза» сохранена в функции bookings.now(). Ей можно пользоваться в запросах там, где в обычной жизни использовалась бы функция now().

Кроме того, значение этой функции определяет версию демонстрационной базы данных. Актуальная версия на текущий момент — от 13.10.2016.

Использование

Схема bookings

Все объекты демонстрационной базы данных находятся в схеме bookings. Это означает, что при обращении к объектам вам необходимо либо явно указывать имя схемы (например: bookings.flights), либо предварительно изменить конфигурационный параметр search_path (например: SET search_path = bookings, public; ).

Однако для функции bookings.now в любом случае необходимо явно указывать схему, чтобы отличать ее от стандартной функции now.

Примеры запросов

Чтобы лучше познакомиться с содержимым демонстрационной базы данных, посмотрим на результаты нескольких простых запросов.

Результаты, представленные ниже, были получены для версии с небольшой базой данных (demo_small) от 13 октября 2016. Если в вашей системе запросы выдают другие данные, проверьте версию демонстрационной базы (функция bookings.now). Незначительные отклонения могут быть связаны с местным временем, отличным от московского, и настройками локализации.

Все рейсы выполняются несколькими типами самолетов:

Для каждого типа самолета поддерживается список мест в салоне. Например, вот где можно разместиться в небольшом самолете Cessna 208 Caravan:

Самолеты большего размера имеют больше посадочных мест с разными классами обслуживания:

База данных содержит список аэропортов практически всех крупных городов России. В большинстве городов есть только один аэропорт. Исключение составляют:

Чтобы понять, откуда и куда можно улететь, удобно использовать материализованное представление routes, в котором агрегируется информация о всех рейсах. Вот, например, куда, в какие дни недели и за какое время можно долететь из Волгограда:

База данных была сформирована на момент времени, возвращаемый функцией bookings.now():

Относительно именно этой временнoй точки все рейсы делятся на прошедшие и будущие:

Найдем ближайший рейс, вылетающий из Екатеринбурга в Москву. Использовать для такого запроса таблицу flight не очень удобно, так как в ней нет информации о городах отправления и прибытия. Поэтому воспользуемся представлением flights_v:

Обратите внимание, что в представлении flights_v указано не только московское время, но и местное время в аэропортах вылета и прилета.

Бронирования

Каждое бронирование может включать несколько билетов, по одному на каждого пассажира. Билет, в свою очередь, может включать несколько перелетов. Полная информация о бронировании находится в трех таблицах: bookings, tickets и ticket_flights.

Найдем несколько бронирований с самой высокой стоимостью:

Посмотрим, из каких билетов состоит бронирование с кодом 521C53:

Если нас интересует, какие перелеты включены в билет Антонины Кузнецовой, то это можно узнать запросом:

Как видим, высокая стоимость бронирования объясняется большим количеством перелетов на дальние расстояния бизнес-классом.

Часть перелетов в этом билете имеет более ранние даты, чем значение bookings.now(): это значит, что они уже выполнены. А последний полет еще предстоит. После регистрации на рейс выписывается посадочный талон с указанием места в самолете. Мы можем посмотреть какие именно места занимала Антонина (обратите внимание на внешнее левое соединение с таблицей boarding_passes):

Новое бронирование

Попробуем отправить Александра Николаевича Радищева по маршруту, который принес ему известность. Разумеется бесплатно и бизнес-классом. Предварительно найдем «завтрашний» рейс, а также позаботимся о возвращении через неделю.

Мы начинаем идентификаторы с подчеркивания, чтобы не пересекаться с диапазоном значений, присутствующих в базе.

Сразу зарегистрируемся на завтрашний рейс:

Проверим информацию о созданном бронировании:

Надеемся, что эти несколько простых примеров помогли составить представление о содержимом демонстрационной базы данных.

Описание проекта

Logo

Описание проекта: «A» — это российская авиакомпания, выполняющая внутренние пассажирские авиаперевозки. Важно понять предпочтения пользователей, покупающих билеты на те или иные направления. Необходимо изучить базу данных и проанализировать спрос пассажиров на рейсы в города, где проходят крупнейшие фестивали.

Данные

  • База данных об авиаперевозках с 6 таблицами:
    • Таблица airports — информация об аэропортах: код, название, город, временная зона.
    • Таблица aircrafts — информация о самолётах: код модели самолёта, модель самолёта, количество самолётов.
    • Таблица tickets — информация о билетах: уникальный номер билета, персональный идентификатор пассажира, имя и фамилия пассажира.
    • Таблица flights — информация о рейсах: уникальный идентификатор рейса, аэропорт вылета, дата и время вылета, аэропорт прилёта, дата и время прилёта, id самолёта
    • Таблица ticket_flights — стыковая таблица «рейсы-билеты»: номер билета, идентификатор рейса
    • Таблица festivals — информация о фестивалях: уникальный номер фестиваля, дата проведения фестиваля, город проведения фестиваля, название фестиваля

    Пояснение: В базе данных нет прямой связи между таблицами airports и festivals , а также festivals и flights .

    Задачи:

    Проект состоит из двух частей: получение данных (из базы и с помощью парсера) и Jupyter Notebook с анализом данных средствами Python.

    1. Парсинг

    Есть ссылка на сайт. Необходимо написать парсер для сбора с сайта данных о 11 крупнейших фестивалях 2018 года и сохранить данные в датафрейм festivals .

    2. Исследовательский анализ данных

    1. Найти количество рейсов с вылетом в сентябре 2018 года на каждой модели самолёта.
    1. Посчитать количество рейсов по всем моделям самолетов Boeing и Airbus в сентябре.
    1. Посчитать среднее количество прибывающих рейсов в день для каждого города за август 2018 года.

    3. SQL

    1. Установить фестивали, которые проходили с 23 июля по 30 сентября 2018 года в Москве, и номер недели, в которую они проходили. Выведите название фестиваля festival_name и номер недели festival_week .
    1. Для каждой недели с 23 июля по 30 сентября 2018 года посчитать количество билетов, купленных на рейсы в Москву (номер недели week_number и количество рейсов flights_amount ). Получить таблицу, в которой будет информация о количестве купленных за неделю билетов, отметка, проходил ли в эту неделю фестиваль, название фестиваля festival_name и номер недели week_number .

    4. Аналитика средствами Python

    C помощью запросов к базе получены 2 датасета. Средствами Python проводится проверка и анализ данных, проверяются статистические гипотезы.

    Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

    Поиск по форуму
    Расширенный поиск

    Страница 1 из 2 1 2 Следующая >

    Здравствуйте.Мог бы кто нибудь помочь? вот не могу ни как сложить минуты и сгруппировать компании.
    вот тут есть мой результат (слева),и то что должно получиться(справа)
    http://files.mail.ru/7A51F0BDDEE94A13B7AFD772D610BBD1

    Для каждой компании, перевозившей пассажиров, подсчитать время, которое провели в полете самолеты с пассажирами.
    Вывод: название компании, время в минутах.

Понравилась статья? Поделить с друзьями:
  • Какие предприятия относятся к малому бизнесу в оптовой торговле с численностью
  • Какие преимущества несет оснащенность гостиницы конференц залом бизнес центром
  • Какие реквизиты должен иметь подписанный утвержденный нормативный правовой акт
  • Какие события происходили в мире во время выхода работы шпенглера закат европы
  • Какие сроки у страховой компании на возмещения ущерба после обращения по осаго