Ниже представлены наши варианты решения заданий из онлайн тренажера на сайте 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 здесь.
Решение задач по SQL
Задание 1.
Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний
Решение:
SELECT name FROM Passenger
Задание 2.
Вывести названия всеx авиакомпаний
Решение:
SELECT name FROM Company
Задание 3.
Вывести все рейсы, совершенные из Москвы
Решение:
SELECT * FROM Trip
WHERE town_from LIKE ‘Moscow’
Задание 4.
Вывести имена людей, которые заканчиваются на «man»
Решение:
SELECT name FROM Passenger
WHERE name LIKE ‘%man’
Задание 5.
Вывести количество рейсов, совершенных на TU-134
Решение:
SELECT COUNT(plane) AS count
FROM Trip
WHERE plane LIKE ‘TU-134’
Задание 6.
Какие компании совершали перелеты на Boeing
Решение:
SELECT DISTINCT name FROM Company
JOIN Trip
ON Company.id=trip.company
WHERE plane LIKE ‘Boeing’
Задание 7.
Вывести все названия самолётов, на которых можно улететь в Москву (Moscow)
Решение:
SELECT DISTINCT plane
FROM Trip
WHERE town_to LIKE ‘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 LIKE ‘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’
-
-
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
Всего ответов: 3
Другие вопросы по: Другие предметы
Опубликовано: 01.03.2019 07:30
Ответов: 3
Опубликовано: 02.03.2019 02:00
Ответов: 3
Опубликовано: 02.03.2019 08:40
Ответов: 2
Опубликовано: 02.03.2019 12:00
Ответов: 3
Опубликовано: 04.03.2019 05:20
Ответов: 2
Опубликовано: 04.03.2019 05:40
Ответов: 3
Популярные вопросы
Опубликовано: 27.02.2019 13:40
Ответов: 1
Опубликовано: 28.02.2019 08:50
Ответов: 2
Опубликовано: 01.03.2019 10:20
Ответов: 2
Опубликовано: 01.03.2019 21:30
Ответов: 1
Опубликовано: 02.03.2019 01:50
Ответов: 3
Опубликовано: 02.03.2019 16:30
Ответов: 2
Опубликовано: 03.03.2019 01:10
Ответов: 3
Опубликовано: 03.03.2019 21:30
Ответов: 2
Опубликовано: 03.03.2019 22:10
Ответов: 3
Опубликовано: 04.03.2019 00:10
Ответов: 3
Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.
What can I do to prevent this in the future?
If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.
If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.
Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.
Cloudflare Ray ID: 71b05b89dd156939 • Your IP : 82.102.23.104 • Performance & security by Cloudflare
SQL ACADEMY ответы и решения заданий (часть 1, задания 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 раза
Новые авиарейсы сделают путешествия по Дальнему Востоку доступнее
В Приморье возобновила несколько маршрутов одна из крупных местных авиакомпаний. Речь идет о перевозчике «Аврора». Компания опять будет совершать рейсы из Владивостока в Комсомольск-на-Амуре и из Николаевска-на-Амуре во Владивосток, сообщает ИА DEITA.RU.
Стоит отметить, что эти маршруты достаточно социально-значимые для местных жителей. Первые самолеты по этим направлениям полетят уже с 28 июня. При этом в первую очередь возобновят перелеты из Владивостока. Из Николаевска-на-Амуре первые рейсы начнут совершать со 2 июля.
В «Авроре» рассказали, что из Комсомольска-на-Амуре можно будет улететь во вторник. Рейс из Владивостока же будет совершать по средам. Стоимость билета будет начинаться от 3,6 тысячи рублей в одну стороны. Из Николаевска-на-Амуре самолеты будут вылетать по субботам. Цена перелета составит минимум семь тысяч рублей за билет в одну сторону.
Власти Приморье уже прокомментировали объявление. Они отметили, что «Аврора» изначально планировала возобновить перелеты по указанным маршрутам. Текущая ситуацию позволила это сделать. Чиновники обратили внимание, что эти рейсы значительно улучшат транспортную доступность дальневосточного региона.
Напомним, недавно на Дальний Восток особое внимание обратил президент Российской Федерации Владимир Путин. Он поручил правительству сделать перелеты в самые дальние уголки страны более доступными. Речь идет о программе транспортного кэшбека. Она действует по всей России и позволяет гражданам вернуть до 20 тысяч рублей трат на туристические путевки. В случае с Владивостоком эта сумма будет достигать 40 тысяч рублей.
На каждый во необходимо написать SQL — за через select
Trip — купленные билеты
Passenger — пассажиры, купившые билеты
Company — компании, осуществляющие авиаперелёты
Pass_in_trip — таблица связующая купленные билеты с пассажирами
1) Какие из авиакомпаний организую авиаперелеты из Владивостока (Vladivostok)? Поля в результирующей таблице:name
2) Вывести имена людей, которые заканчиваются на «man» Поля в результирующей таблице:name
3) Во сколько Стив Мартин (Steve Martin) прилетел в Лондон (London)? Поля в результирующей таблице:time_in
4) Какие компании совершали перелеты на Boeing? Поля в результирующей таблице:name
5) Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний Поля в результирующей таблице:name
2 Смотреть ответы Добавь ответ +10 баллов
SQL ACADEMY ответы и решения заданий (часть 1, задания 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 раза
Вот уже более 3-х лет я преподаю SQL в разных тренинг центрах, и одним из моих наблюдений является то, что студенты осваивают и понимают SQL лучше, если ставить перед ними задачу, а не просто рассказывать о возможностях и теоретических основах.
В этой статье я поделюсь с вами своим списком задач, которые я даю студентам в качестве домашнего задания и над которыми мы проводим разного рода брейнстормы, что приводит к глубокому и четкому пониманию SQL.
SQL (ˈɛsˈkjuˈɛl; англ. structured query language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных. Подробнее…
Почитать об SQL можно из разных источников.
Данная статья не преследует цели обучить вас SQL с нуля.
Итак, поехали.
Будем использовть всем известную схему HR в Oracle с ее таблицами (Подробнее):
Отмечу что мы будем рассматривать только задачи на SELECT. Тут нет задач на DML и DDL.
Задачи
Restricting and Sorting Data
Таблица Employees. Получить список с информацией обо всех сотрудниках
Using Single-Row Functions to Customize Output
Таблица Employees. Получить список всех сотрудников у которых длина имени больше 10 букв
Using Conversion Functions and Conditional Expressions
Таблица Employees. Получить список всех сотрудников которые пришли на работу в первый день месяца (любого)
Reporting Aggregated Data Using the Group Functions
Таблица Employees. Получить репорт по department_id с минимальной и максимальной зарплатой, с ранней и поздней датой прихода на работу и с количествов сотрудников. Сорировать по количеству сотрудников (по убыванию)
Displaying Data from Multiple Tables Using Joins
Таблица Employees, Departaments, Locations, Countries, Regions. Получить список регионов и количество сотрудников в каждом регионе
Using Subqueries to Solve Queries
Таблица Employees. Получить список сотрудников с самым длинным именем.
На этом пока всё.
Надеюсь, задачи были интересными и увлекательными.
Буду по возможности дополнять этот список задач.
Также буду рад любым замечаниям и предложениям.
Упражнения по SQL
SELECT (обучающий этап) задачи по SQL запросам 120 штук, DML 10 шт. Дистанционное обучение языку баз данных SQL. Интерактивные упражнения и тестирование по операторам SELECT,INSERT,UPDATE,DELETE языка SQL. SQL remote education. SQL statements exercises. Подзапросы, Соединение таблиц, Функции SQL, Введение в SQL, Скачать книги по SQL. Команды SQL,CREATE SEQUENCE,CREATE SYNONYM,CREATE USER,CREATE VIEW,Create Table,DROP,GRANT,INSERT,REVOKE,SET ROLE,SET TRANSACTION,SQL ALTER TABLE,SQL команды.
четверг, 23 февраля 2017 г.
SELECT (обучающий этап) задачи по SQL запросам
Задачи по SQL запросам
Найдите класс, имя и страну для кораблей из таблицы Ships, имеющих не менее 10 орудий.
Для ПК с максимальным кодом из таблицы PC вывести все его характеристики (кроме кода) в два столбца:
— название характеристики (имя соответствующего столбца в таблице PC);
— значение характеристики
select fields,A from
(
Select
cast(model as NVARCHAR(10)) as model
, cast (speed as NVARCHAR(10)) as speed
, cast(ram as NVARCHAR(10)) as ram
,cast(hd as NVARCHAR(10)) as hd
, cast(cd as NVARCHAR(10)) as cd
, cast(price as NVARCHAR(10)) as price from PC
where code = (Select max(code) from PC)
) as t
unpivot
(
A for fields in (model, speed, ram, hd, cd, price)
) as unpvt
Найдите названия кораблей, потопленных в сражениях, и название сражения, в котором они были потоплены.
Укажите сражения, которые произошли в годы, не совпадающие ни с одним из годов спуска кораблей на воду.
Найдите названия всех кораблей в базе данных, начинающихся с буквы R.
Найдите названия всех кораблей в базе данных, состоящие из трех и более слов (например, King George V).
Считать, что слова в названиях разделяются единичными пробелами, и нет концевых пробелов.
Для каждого корабля, участвовавшего в сражении при Гвадалканале (Guadalcanal), вывести название, водоизмещение и число орудий.
Пронумеровать строки из таблицы Product в следующем порядке: имя производителя в порядке убывания числа производимых им моделей (при одинаковом числе моделей имя производителя в алфавитном порядке по возрастанию), номер модели (по возрастанию).
Вывод: номер в соответствии с заданным порядком, имя производителя (maker), модель (model)
Найдите классы кораблей, в которых хотя бы один корабль был потоплен в сражении.
Найдите названия кораблей с орудиями калибра 16 дюймов (учесть корабли из таблицы Outcomes).
Найдите сражения, в которых участвовали корабли класса Kongo из таблицы Ships.
Посчитать остаток денежных средств на всех пунктах приема для базы данных с отчетностью не чаще одного раза в день.
SELECT sum(i) FROM
(SELECT point, sum(inc) as i FROM
income_o
group by point
SELECT point, -sum(out) as i FROM
outcome_o
group by point
) as t
Определить время, проведенное в полетах, для пассажиров, летавших всегда на разных местах. Вывод: имя пассажира, время в минутах.
Определить дни, когда было выполнено максимальное число рейсов из
Ростова (‘Rostov’). Вывод: число рейсов, дата.
Для каждого сражения определить первый и последний день
месяца,
в котором оно состоялось.
Вывод: сражение, первый день месяца, последний
день месяца.
Замечание: даты представить без времени в формате «yyyy-mm-dd».
Определить пассажиров, которые больше других времени провели в полетах.
Вывод: имя пассажира, общее время в минутах, проведенное в полетах
Найти производителей компьютерной техники, у которых нет моделей ПК, не представленных в таблице PC.
Из таблицы Outcome получить все записи за тот месяц (месяцы), с учетом года, в котором суммарное значение расхода (out) было максимальным.
В наборе записей из таблицы PC, отсортированном по столбцу code (по возрастанию) найти среднее значение цены для каждой шестерки подряд идущих ПК.
Вывод: значение code, которое является первым в наборе из шести строк, среднее значение цены в наборе.
Определить названия всех кораблей из таблицы Ships, которые удовлетворяют, по крайней мере, комбинации любых четырёх критериев из следующего списка:
numGuns = 8
bore = 15
displacement = 32000
type = bb
launched = 1915
class=Kongo
country=USA
Для каждой компании подсчитать количество перевезенных пассажиров (если они были в этом месяце) по декадам апреля 2003. При этом учитывать только дату вылета.
Вывод: название компании, количество пассажиров за каждую декаду
Найти производителей, которые выпускают только принтеры или только PC.
При этом искомые производители PC должны выпускать не менее 3 моделей.
Для каждого производителя перечислить в алфавитном порядке с разделителем «/» все типы выпускаемой им продукции.
Вывод: maker, список типов продукции
Считая, что пункт самого первого вылета пассажира является местом жительства, найти не москвичей, которые прилетали в Москву более одного раза.
Вывод: имя пассажира, количество полетов в Москву
Среди тех, кто пользуется услугами только одной компании, определить имена разных пассажиров, летавших чаще других.
Вывести: имя пассажира, число полетов и название компании.
Найти производителей, у которых больше всего моделей в таблице Product, а также тех, у которых меньше всего моделей.
Вывод: maker, число моделей
Вывести все строки из таблицы Product, кроме трех строк с наименьшими номерами моделей и трех строк с наибольшими номерами моделей.
- from Product
Используя таблицу Product, определить количество производителей, выпускающих по одной модели.
Выбрать все белые квадраты, которые окрашивались только из баллончиков,
пустых к настоящему времени. Вывести имя квадрата
Для каждой компании, перевозившей пассажиров, подсчитать время, которое провели в полете самолеты с пассажирами.
Вывод: название компании, время в минутах.
Для семи последовательных дней, начиная от минимальной даты, когда из Ростова было совершено максимальное число рейсов, определить число рейсов из Ростова.
Вывод: дата, количество рейсов
На основании информации из таблицы Pass_in_Trip, для каждой авиакомпании определить:
1) количество выполненных перелетов;
2) число использованных типов самолетов;
3) количество перевезенных различных пассажиров;
4) общее число перевезенных компанией пассажиров.
Вывод: Название компании, 1), 2), 3), 4).
При условии, что баллончики с красной краской использовались более одного раза, выбрать из них такие, которыми окрашены квадраты, имеющие голубую компоненту.
Вывести название баллончика
Отобрать из таблицы Laptop те строки, для которых выполняется следующее условие:
значения из столбцов speed, ram, price, screen возможно расположить таким образом, что каждое последующее значение будет превосходить предыдущее в 2 раза или более.
Замечание: все известные характеристики ноутбуков больше нуля.
Вывод: code, speed, ram, price, screen.
Вывести список ПК, для каждого из которых результат побитовой операции ИЛИ, примененной к двоичным представлениям скорости процессора и объема памяти, содержит последовательность из не менее четырех идущих подряд единичных битов.
Вывод: код модели, скорость процессора, объем памяти.
Рассматриваются только таблицы Income_o и Outcome_o. Известно, что прихода/расхода денег в воскресенье не бывает.
Для каждой даты прихода денег на каждом из пунктов определить дату инкассации по следующим правилам:
1. Дата инкассации совпадает с датой прихода, если в таблице Outcome_o нет записи о выдаче денег в эту дату на этом пункте.
2. В противном случае — первая возможная дата после даты прихода денег, которая не является воскресеньем и в Outcome_o не отмечена выдача денег сдатчикам вторсырья в эту дату на этом пункте.
Вывод: пункт, дата прихода денег, дата инкассации.
Написать запрос, который выводит все операции прихода и расхода из таблиц Income и Outcome в следующем виде:
дата, порядковый номер записи за эту дату, пункт прихода, сумма прихода, пункт расхода, сумма расхода.
При этом все операции прихода по всем пунктам, совершённые в течение одного дня, упорядочены по полю code, и так же все операции расхода упорядочены по полю code.
В случае, если операций прихода/расхода за один день было не равное количество, выводить NULL в соответствующих колонках на месте недостающих операций.
Таблица Printer сортируется по возрастанию поля code.
Упорядоченные строки составляют группы: первая группа начинается с первой строки, каждая строка со значением color=’n’ начинает новую группу, группы строк не перекрываются.
Для каждой группы определить: наибольшее значение поля model (max_model), количество уникальных типов принтеров (distinct_types_cou) и среднюю цену (avg_price).
Для всех строк таблицы вывести: code, model, color, type, price, max_model, distinct_types_cou, avg_price.
Определить имена разных пассажиров, которые летали
только между двумя городами (туда и/или обратно).
Выбрать три наименьших и три наибольших номера рейса. Вывести их в шести столбцах одной строки, расположив в порядке от наименьшего к наибольшему.
Замечание: считать, что таблица Trip содержит не менее шести строк.
Для каждого класса крейсеров, число орудий которого известно, пронумеровать (последовательно от единицы) все орудия.
Вывод: имя класса, номер орудия в формате ‘bc-N’.
Статистики Алиса, Белла, Вика и Галина нумеруют строки у таблицы Product.
Все четверо упорядочили строки таблицы по возрастанию названий производителей.
Алиса присваивает новый номер каждой строке, строки одного производителя она упорядочивает по номеру модели.
Трое остальных присваивают один и тот же номер всем строкам одного производителя.
Белла присваивает номера начиная с единицы, каждый следующий производитель увеличивает номер на 1.
У Вики каждый следующий производитель получает такой же номер, какой получила бы первая модель этого производителя у Алисы.
Галина присваивает каждому следующему производителю тот же номер, который получила бы его последняя модель у Алисы.
Вывести: maker, model, номера строк получившиеся у Алисы, Беллы, Вики и Галины соответственно.
Пусть v1, v2, v3, v4, . представляет последовательность вещественных чисел — объемов окрасок b_vol, упорядоченных по возрастанию b_datetime, b_q_id, b_v_id.
Найти преобразованную последовательность P1=v1, P2=v1/v2, P3=v1/v2*v3, P4=v1/v2*v3/v4, . где каждый следующий член получается из предыдущего умножением на vi (при нечетных i) или делением на vi (при четных i).
Результаты представить в виде b_datetime, b_q_id, b_v_id, b_vol, Pi, где Pi — член последовательности, соответствующий номеру записи i. Вывести Pi с 8-ю знаками после запятой.
Для пятого по счету пассажира из числа вылетевших из Ростова в апреле 2003 года определить компанию, номер рейса и дату вылета.
Замечание. Считать, что два рейса одновременно вылететь из Ростова не могут.
Реставрация экспонатов секции «Треугольники» музея ПФАН проводилась согласно техническому заданию. Для каждой записи таблицы utb малярами подкрашивалась сторона любой фигуры, если длина этой стороны равнялась b_vol.
Найти окрашенные со всех сторон треугольники, кроме равносторонних, равнобедренных и тупоугольных.
Для каждого треугольника (но без повторений) вывести три значения X, Y, Z, где X — меньшая, Y — средняя, а Z — большая сторона.
Вывести:
1. Названия всех квадратов черного или белого цвета.
2. Общее количество белых квадратов.
3. Общее количество черных квадратов.
Определить имена разных пассажиров, когда-либо летевших рейсом, который вылетел в субботу, а приземлился в воскресенье.
Найти НЕ белые и НЕ черные квадраты, которые окрашены разными цветами в пропорции 1:1:1. Вывод: имя квадрата, количество краски одного цвета
Какое максимальное количество черных квадратов можно было бы окрасить в белый цвет
оставшейся краской
Сколько каждой краски понадобится, чтобы докрасить все Не белые квадраты до белого цвета.
Вывод: количество каждой краски в порядке (R,G,B)
Определить имена разных пассажиров, которым чаще других доводилось лететь на одном и том же месте. Вывод: имя и количество полетов на одном и том же месте.
Рассмотрим равнобочные трапеции, в каждую из которых можно вписать касающуюся всех сторон окружность. Кроме того, каждая сторона имеет целочисленную длину из множества значений b_vol.
Вывести результат в 4 колонки: Up, Down, Side, Rad. Здесь Up — меньшее основание, Down — большее основание, Side — длины боковых сторон, Rad – радиус вписанной окружности (с 2-мя знаками после запятой).
Считая, что каждая окраска длится ровно секунду, определить непрерывные интервалы времени с длительностью более 1 секунды из таблицы utB.
Вывод: дата первой окраски в интервале, дата последней окраски в интервале.
По таблице Classes для каждой страны найти максимальное значение среди трех выражений:
numguns*5000, bore*3000, displacement.
Вывод в три столбца:
— страна;
— максимальное значение;
— слово `numguns` — если максимум достигается для numguns*5000, слово `bore` — если максимум достигается для bore*3000, слово `displacement` — если максимум достигается для displacement.
Замечание. Если максимум достигается для нескольких выражений, выводить каждое из них отдельной строкой.
Выборы Директора музея ПФАН проводятся только в високосный год, в первый вторник апреля после первого понедельника апреля.
Для каждой даты из таблицы Battles определить дату ближайших (после этой даты) выборов Директора музея ПФАН.
Вывод: сражение, дата сражения, дата выборов. Даты выводить в формате «yyyy-mm-dd».
Сгруппировать все окраски по дням, месяцам и годам. Идентификатор каждой группы должен иметь вид «yyyy» для года, «yyyy-mm» для месяца и «yyyy-mm-dd» для дня.
Вывести только те группы, в которых количество различных моментов времени (b_datetime), когда выполнялась окраска, более 10.
Вывод: идентификатор группы, суммарное количество потраченной краски.
Для авиакомпаний, самолеты которой выполнили хотя бы один рейс, вычислить с точностью до двух десятичных знаков средние величины времени нахождения самолетов в воздухе (в минутах). Также рассчитать указанные характеристики по всем летавшим самолетам (использовать слово ‘TOTAL’).
Вывод: компания, среднее арифметическое, среднее геометрическое, среднее квадратичное, среднее гармоническое.
SQL ACADEMY ответы и решения заданий (часть 1, задания 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 раза
Упражнение 124
Среди пассажиров, которые пользовались услугами не менее двух авиакомпаний, найти тех, кто совершил одинаковое количество полётов самолетами каждой из этих авиакомпаний. Вывести имена таких пассажиров.
Эта задача порождает массу ошибочных решений, которые я разделяю на две группы. К первой группе относятся решения, связанные с неверным прочтением формулировки. Например, пытаются найти двух пассажиров, которые летали бы одинаково двумя или большим числом компаний.
Поясню, что рассматривать следует отдельного пассажира и подсчитываеть число полетов, которое он сделал каждой из авиакомпаний, которыми летал.
Что дальше? Рассмотрим теперь пример из второй группы ошибочных решений:
Консоль
Сразу отметим ошибочное DISTINCT name, которое устраняет возможных однофамильцев. Однако не это здесь главное. В предложении FROM соединяются два одинаковых запроса
Консоль
Соединяются эти запросы по следующим условиям:
- пассажир тот же самый;
- компании разные;
- число полетов совпадает.
Итак, если пассажир совершил, скажем, компанией Aeroflot 3 полета, и также 3 полета он совершил самолетами компании Don_avia, то такой пассажир удовлетворяет условиям соединения и будет выведен в результатах запроса. Если пассажир летал всего двумя компаниями, то это — правильный результат. А если компании три?
Если в результате рассмотренного выше подзапроса мы получим
Итак, число полетов пассажира каждой из компаний, которыми он летал, должно находиться в пропорции 1:1. 1.
Получайте на почту один раз в сутки одну самую читаемую статью. Присоединяйтесь к нам в Facebook и ВКонтакте.
Boeing Model 1 – первенец от Boeing
Историю корпорации Boeing следует отсчитывать, начиная с 15 июня 1916 года, когда совершил первый полет гидросамолет B&W, созданный Уильямом Боингом и его другом, военным инженером Джорджем Вестервельтом. Испытания прошли удачно, и уже через месяц товарищи учредили собственную компанию по производству самолетов – The Pacific Aero Products Company, через год переименованную в честь создателя.
B&W получил название Boeing Model 1, но в массовое производство не вышел. Всего было выпущено два подобных самолета, которые сначала поступили на вооружение Военно-морских сил США, а потом были проданы школе гражданской авиации в Новой Зеландии. Эта сделка стала первым международным договором компании Boeing.
Boeing Model C – первая серийная модель
Boeing Model C – стал первым самолетом от Boeing, запушенным в серийное производство, и первым финансовым успехом молодой компании. Испытания этого летательного аппарата прошли в ноябре 1916 года, а в апреле 1917 производитель заключил контракт с военным ведомством США, предполагающий поставку более чем пятидесяти самолетов этого типа.
Самолеты Boeing Model C (всего шесть вариаций) использовались Военно-морскими силами США для обучения пилотов, а также перевозки грузов и корреспонденции.
Boeing 247 – первый современный авиалайнер
В последующие несколько лет компания Boeing выпустила множество моделей самолетов для армии США, почтового ведомства и т.д. Но переломный момент в истории этого производителя наступил в 1933 году, когда началось производство первого в мире серийного пассажирского авиалайнера современного типа – Boeing 247.
Boeing 247 был настоящим триумфом инженерной мысли тех времен. Он имел цельнометаллический корпус со свободно несущим крылом, выдвигающиеся и задвигающиеся шасси и даже автопилот! Всего было выпущено 75 экземпляров этого 10-местного самолета, что весьма неплохо для периода, когда гражданская авиация только зарождалась.
B-29 Superfortress – летающая суперкрепость
Во время Второй Мировой войны Boeing практически полностью переключился на производство военных самолетов. При этом разработанные инженерами этой компании летательные аппараты собирались и на заводах других фирм – вся страна была нацелена на победу.
Самым массовым военным самолетом от Boeing тех времен стал бомбардировщик B-17 Flying Fortress, но самым известным – B-29 Superfortress. Этот самолет стал одним из символов победы США во Второй Мировой, к примеру, именно с летающих «суперкрепостей» были сброшены атомные бомбы на города Хиросима и Нагасаки.
B-29 Superfortress стал основой для советского бомбардировщика Ту-4, а затем, в переработанном варианте, и для американского пассажирского авиалайнера Boeing 377 Stratocruiser.
Boeing 707 – первая «семерка»
Первым по-настоящему массовым пассажирским авиалайнером от компании Boeing стал самолет Boeing 707. Впервые взмыл в небо он в 1954 году, а серийное производство началось в 1958.
Самолет выпускался в течение двадцати лет, до 1978 года, но более ста его экземпляров до сих пор бороздят воздушные просторы планеты. Причиной тому является высокая надежность аппарата, а также возможность его модифицировать под специфические нужды. К примеру, на базе Boeing 707 создавались не только пассажирские, но и грузовые самолеты, а также заправщики, разведчики, летающие лаборатории и воздушные командные пункты. И даже Джон Траволта летает на личном B-707!
Boeing 737 – самый массовый воздушный лайнер
717 и 727 модели Боинга также завоевали достаточно высокую популярность в мире, но по-настоящему легендарным летательным аппаратом стал Boeing 737. Этот самолет является самым массовым реактивным пассажирским воздушным лайнером за всю историю авиации, ведь с 1968 года и до нашего времени было произведено почти восемь тысяч его экземпляров. Всего выпущено десять моделей семейства Boeing 737.
Изучение авиационной статистики показало, что в любой момент времени в воздухе находится не менее 1200 самолетов Boeing 737. А взлет или посадка такого аппарата происходит, в среднем, каждые пять секунд. Это рекорды, о которых могут лишь мечтать другие пассажирские самолеты, в том числе, и прямой конкурент 737-го – Airbus A320.
Boeing 747 – самолет-гигант, самолет-легенда
Разработка и строительство Boeing 747 сопровождалось причитаниями скептиков. Мол, самолет этот слишком большой, не такой экономичный, как конкуренты, да еще и помещений для его сборки нету – компании-производителю пришлось даже возвести новый завод для этих целей, одно из самых крупных зданий в мире. Огромные траты поставили Boeing на грань банкротства, но высокая прибыль окупила эти риски с лихвой.
Сверхзвуковая авиация, которая должна была составить конкуренцию самолетам типа Boeing 747, не оправдала возложенные на нее надежды. Зато сам этот авиалайнер стал одним из популярнейших в истории пассажирских авиаперевозок. А количество заказов на него начало снижаться только в первом десятилетии 21 века. Всего с 1969 года было произведено почти полторы тысячи экземпляров B-747.
Boeing 767 – рабочая лошадка авиаперевозчиков
Появлению самолета Boeing 767 мир обязан американской авиакомпании United Airlines, которая проявила заинтересованность к экономному авиалайнеру средней и большой дальности полета и сделала заказ на тридцать его экземпляров. Произошло это в 1978 году, через три года в небо взлетел первый B-767, а еще через год началось серийное его производство, которое продолжается до сих пор.
Boeing 767 завоевал всемирную популярность благодаря высокому уровню комфорта, сравнимому с 747 моделью, экономичности, использованию новых технологий и безопасности. Известен случай, когда этот авиалайнер пролетел более ста километров с пустым баком, спланировав с высоты 8,5 километров и успешно приземлившись без существенных повреждений.
Boeing 777 – три семерки
На постосоветском пространстве бренд «три семерки» связан с дешевым портвейном, а в Америке – с Boeing 777, самым большим в мире двухмоторным реактивным пассажирским самолетом. Кроме размеров, этому авиалайнеру принадлежит также несколько других достижений. К примеру, абсолютный рекорд дальности полета на одной заправке топливных баков – 21601 километр.
Разработка этого авиалайнера началась в 1990 году, а в первый полет он отправился в июне 1994. Примечателен факт, что Boeing 777 стал первым самолетом, полностью сконструированным на компьютере, без какого-либо использования бумажных чертежей. А в работе над новым летательным аппаратом приняли активное участие авиакомпании и даже пассажиры, которые дали немало советов, каким должен быть новый продукт от Boeing, чтобы нравиться людям и заказчикам.
Boeing 787 Dreamliner – лайнер мечты
Специалисты компании Boeing знают цену своей работе и создаваемым ими летательным аппаратам. Доказательством тому может послужить имя, которое получил новый самолет, выпускаемый этой компанией, – Dreamliner, лайнер мечты. Впервые он поднялся в воздух 15 декабря 2009 года.
Boeing 787 Dreamliner, на данный момент, является самым дефицитным самолетом в мире. Ведь компания Боинг уже имеет заказы более чем на тысячу экземпляров этого аппарата, а выпустила она всего чуть более сотни штук. Такой ажиотаж среди авиакомпаний понятен – «лайнер мечты», несмотря на свои большие размеры, очень экономный, экологичный и выгодный самолет, да еще и созданный с использованием «зеленых» технологий, что весьма модно в наши дни.