You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SELECT town_to
FROM passenger ps
JOIN Pass_in_trip pt ONps.id=pt.passengerJOIN trip tr ONtr.id=pt.tripWHERE name ='Bruce Willis';
Выведите дату и время прилёта пассажира Стив Мартин (Steve Martin) в Лондон (London)
(сайт)
Решение
SELECT time_in
FROM trip tr
JOIN Pass_in_trip pt ONtr.id=pt.tripJOIN passenger ps ONpt.passenger=ps.idWHERE name ='Steve Martin'AND town_to ='London';
Вывести отсортированный по количеству перелетов (по убыванию) и имени (по возрастанию) список пассажиров,
совершивших хотя бы 1 полет. (сайт)
Решение
SELECT name,
COUNT(name) AS count
FROM passenger ps
JOIN Pass_in_trip pt ONps.id=pt.passengerJOIN trip tr ONpt.trip=tr.idGROUP BY name
ORDER BY count DESC,
name ASC;
Определить, сколько потратил в 2005 году каждый из членов семьи. В результирующей выборке не выводите тех членов
семьи, которые ничего не потратили. (сайт)
Решение
SELECT member_name,
status,
SUM(unit_price * amount) AS costs
FROM FamilyMembers fm
JOIN Payments ps ONfm.member_id=ps.family_memberWHERE YEAR(DATE) =2005GROUP BY member_name,
status;
SELECT member_name
FROM FamilyMembers
ORDER BY birthday ASCLIMIT1;
Определить, кто из членов семьи покупал картошку (potato) (сайт)
Решение
SELECT status
FROM FamilyMembers fm
JOIN Payments ps ONfm.member_id=ps.family_memberJOIN Goods gs ONps.good=gs.good_idWHERE good_name ='potato'GROUP BY status;
Сколько и кто из семьи потратил на развлечения (entertainment). Вывести статус в семье, имя, сумму
(сайт)
Решение
SELECT status,
member_name,
SUM(amount * unit_price) AS costs
FROM FamilyMembers fm
JOIN Payments ps ONfm.member_id=ps.family_memberJOIN Goods gs ONps.good=gs.good_idJOIN GoodTypes gt ONgs.type=gt.good_type_idWHERE good_type_name ='entertainment'GROUP BY status, member_name;
Определить товары, которые покупали более 1 раза (сайт)
Решение
SELECT good_name
FROM Goods gs
JOIN Payments ps ONgs.good_id=ps.goodGROUP BY good
HAVINGCOUNT(*) >1;
SELECT member_name
FROM FamilyMembers
WHERE status ='mother';
Найдите самый дорогой деликатес (delicacies) и выведите его цену (сайт)
Решение
SELECT good_name,
unit_price
FROM Goods gs
JOIN GoodTypes gt ONgs.type=gt.good_type_idJOIN Payments ps ONgs.good_id=ps.goodWHERE good_type_name ='delicacies'ORDER BY unit_price DESCLIMIT1;
Определить кто и сколько потратил в июне 2005 (сайт)
Решение
SELECT member_name,
(amount * unit_price) AS costs
FROM FamilyMembers fm
JOIN Payments ps ONfm.member_id=ps.family_memberWHERE YEAR(date) =2005AND MONTH(date) =6;
Определить, какие товары не покупались в 2005 году (сайт)
Решение
SELECT good_name
FROM Goods
WHERE good_id NOT IN (
SELECT good
FROM Payments
WHERE YEAR(date) =2005
);
Определить группы товаров, которые не приобретались в 2005 году
(сайт)
Решение
SELECT good_type_name
FROM GoodTypes
WHERE good_type_id NOT IN (
SELECT type
FROM Goods gs
JOIN Payments ps ONgs.good_id=ps.goodWHERE YEAR(date) =2005GROUP BY good_id
);
Узнать, сколько потрачено на каждую из групп товаров в 2005 году. Вывести название группы и сумму
(сайт)
Решение
SELECT good_type_name,
SUM(amount * unit_price) AS costs
FROM GoodTypes gt
JOIN Goods gs ONgt.good_type_id=gs.typeJOIN Payments ps ONgs.good_id=ps.goodWHERE YEAR(date) =2005GROUP BY good_type_name;
Сколько рейсов совершили авиакомпании из Ростова (Rostov) в Москву (Moscow) ?
(сайт)
Решение
SELECTCOUNT(*) AS COUNT
FROM Trip
WHERE town_from ='Rostov'AND town_to ='Moscow';
Выведите имена пассажиров улетевших в Москву (Moscow) на самолете TU-134
(сайт)
Решение
SELECT name
FROM Passenger ps
JOIN Pass_in_trip pt ONps.id=pt.passengerJOIN Trip tr ONpt.trip=tr.idWHERE plane ='TU-134'AND town_to ='Moscow'GROUP BY name;
Выведите нагруженность (число пассажиров) каждого рейса (trip). Результат вывести в отсортированном виде по убыванию
нагруженности. (сайт)
Решение
SELECT trip,
COUNT(passenger) AS count
FROM Pass_in_trip
GROUP BY trip
ORDER BY count DESC;
Вывести всех членов семьи с фамилией Quincey. (сайт)
Решение
SELECT*FROM FamilyMembers
WHERE member_name LIKE'% Quincey';
Вывести средний возраст людей (в годах), хранящихся в базе данных. Результат округлите до целого в меньшую сторону.
(сайт)
Решение
SELECT FLOOR(
AVG(TIMESTAMPDIFF(YEAR, birthday, CURRENT_TIMESTAMP))
) AS age
FROM FamilyMembers;
Найдите среднюю стоимость икры. В базе данных хранятся данные о покупках красной (red caviar) и черной икры (black
caviar). (сайт)
Решение
SELECTAVG(unit_price) AS cost
FROM Payments ps
JOIN Goods gs ONps.good=gs.good_idWHERE good_name ='red caviar'OR good_name ='black caviar';
SELECTCOUNT(name) AS count
FROM Class
WHERE name LIKE'10 %';
Сколько различных кабинетов школы использовались 2.09.2019 в образовательных целях ?
(сайт)
Решение
SELECTCOUNT(DISTINCT classroom) AS count
FROM Student_in_class sc
JOIN Class cl ONsc.class=cl.idJOIN Schedule sh ONsh.class=cl.idWHERE DATE_FORMAT(date, '%e.%m.%Y') ='2.09.2019';
Выведите информацию об обучающихся живущих на улице Пушкина (ul. Pushkina)?
(сайт)
Решение
SELECT*FROM Student
WHERE address RLIKE 'Pushkina';
SELECTCOUNT(*) AS count
FROM Student_in_class sc
JOIN Class cl ONsc.class=cl.idWHERE name ='10 B';
Выведите название предметов, которые преподает Ромашкин П.П. (Romashkin P.P.) ?
(сайт)
Решение
SELECT name AS subjects
FROM Subject sj
JOIN Schedule sc ONsj.id=sc.subjectJOIN Teacher tc ONtc.id=sc.teacherWHERE last_name ='Romashkin'AND first_name LIKE'P%'AND middle_name LIKE'P%';
Во сколько начинается 4-ый учебный предмет по расписанию ? (сайт)
Решение
SELECT start_pair
FROM Timepair
WHERE id =4;
Сколько времени обучающийся будет находиться в школе, учась со 2-го по 4-ый уч. предмет?
(сайт)
Решение
SELECT TIMEDIFF(MAX(end_pair), MIN(start_pair)) AStimeFROM Timepair
WHERE id BETWEEN 2AND4;
Выведите фамилии преподавателей, которые ведут физическую культуру (Physical Culture). Отсортируйте преподавателей
по фамилии в алфавитном порядке. (сайт)
Решение
SELECT last_name
FROM Teacher tc
JOIN Schedule sc ONtc.id=sc.teacherJOIN Subject sj ONsj.id=sc.subjectWHERE name ='Physical Culture'ORDER BY last_name;
Найдите максимальный возраст (колич. лет) среди обучающихся 10 классов ?
(сайт)
Решение
SELECT TIMESTAMPDIFF(YEAR, birthday, CURRENT_TIMESTAMP) AS max_year
FROM Student st
JOIN Student_in_class sc ONsc.student=st.idJOIN Class cl ONcl.id=sc.classWHERE name LIKE'10 %'ORDER BY max_year DESCLIMIT1;
Какие кабинеты чаще всего использовались для проведения занятий? Выведите те, которые использовались максимальное
количество раз. (сайт)
Решение
SELECT classroom
FROM Schedule
GROUP BY classroom
HAVINGcount(classroom) = (
SELECTCOUNT(*) AS count
FROM Schedule
GROUP BY classroom
ORDER BY count DESCLIMIT1
);
В каких классах введет занятия преподаватель "Krauze" ? (сайт)
Решение
SELECT name
FROM Schedule sc
JOIN Teacher tc ONtc.id=sc.teacherJOIN Class cl ONcl.id=sc.classWHERE last_name ='Krauze'GROUP BY name;
Сколько занятий провел Krauze 30 августа 2019 г.? (сайт)
Решение
SELECTCOUNT(*) AS count
FROM Schedule sc
JOIN Teacher tc ONtc.id=sc.teacherWHERE DATE_FORMAT(date, '%e %M %Y') ='30 August 2019'AND last_name ='Krauze';
Выведите заполненность классов в порядке убывания (сайт)
Решение
SELECT name,
COUNT(student) AS count
FROM Class cl
JOIN Student_in_class sc ONsc.class=cl.idGROUP BY name
ORDER BY count DESC;
Какой процент обучающихся учится в "10 A" классе? Выведите ответ в диапазоне от 0 до 100 без округления, например,
96.0201. (сайт)
Решение
SELECTCOUNT(*) *100/ (
SELECTCOUNT(*)
FROM Student_in_class
) AS percent
FROM Student_in_class sc
JOIN Class cs ONcs.id=sc.classWHERE name ='10 A';
Какой процент обучающихся родился в 2000 году? Результат округлить до целого в меньшую сторону.
(сайт)
Решение
SELECT FLOOR(
COUNT(*) *100/ (
SELECTCOUNT(*)
FROM Student_in_class
)
) AS percent
FROM Student_in_class sc
JOIN Student st ONst.id=sc.studentWHERE YEAR(birthday) =2000;
Добавьте товар с именем "Cheese" и типом "food" в список товаров (Goods).
(сайт)
Решение
INSERT INTO Goods
SET good_id = (
SELECTCOUNT(*) +1FROM Goods AS gs
),
good_name ='Cheese',
type = (
SELECT good_type_id
FROM GoodTypes
WHERE good_type_name ='food'
);
Добавьте в список типов товаров (GoodTypes) новый тип "auto". (сайт)
Решение
INSERT INTO GoodTypes
SET good_type_id = (
SELECTCOUNT(*) +1FROM GoodTypes AS gt
),
good_type_name ='auto';
Измените имя "Andie Quincey" на новое "Andie Anthony". (сайт)
Решение
UPDATE FamilyMembers
SET member_name ='Andie Anthony'WHERE member_name ='Andie Quincey';
Удалить всех членов семьи с фамилией "Quincey". (сайт)
Решение
DELETEFROM FamilyMembers
WHERE member_name LIKE'% Quincey';
Удалить компании, совершившие наименьшее количество рейсов. (сайт)
Решение
DELETEFROM company
WHERE id IN (
SELECT company
FROM trip
GROUP BY company
HAVINGCOUNT(*) = (
SELECTCOUNT(*) AS count
FROM trip
GROUP BY company
ORDER BY count
LIMIT1
)
);
Удалить все перелеты, совершенные из Москвы (Moscow). (сайт)
Решение
DELETEFROM trip
WHERE town_from ='Moscow';
Перенести расписание всех занятий на 30 мин. вперед. (сайт)
Добавить отзыв с рейтингом 5 на жилье, находящиеся по адресу "11218, Friel Place, New York", от имени "George
Clooney" (сайт)
Решение
INSERT INTO Reviews
SET id = (
SELECTCOUNT(*) +1FROM Reviews rw
),
reservation_id = (
SELECTrs.idFROM Reservations rs
JOIN Rooms rm ONrm.id=rs.room_idJOIN Users us ONrs.user_id=us.idWHERE address ='11218, Friel Place, New York'AND name ='George Clooney'
),
rating =5;
Вывести пользователей,указавших Белорусский номер телефона ? Телефонный код Белоруссии +375.
(сайт)
Решение
SELECT*FROM Users
WHERE phone_number LIKE'+375 %';
Выведите идентификаторы преподавателей, которые хотя бы один раз за всё время преподавали в каждом из одиннадцатых
классов. (сайт)
Решение
SELECT teacher
FROM Schedule sc
JOIN Class cl ONsc.class=cl.idWHERE name LIKE'11 %'GROUP BY teacher
HAVINGCOUNT(DISTINCT name) =2;
Выведите список комнат, которые были зарезервированы хотя бы на одни сутки в 12-ую неделю 2020 года. В данной задаче
в качестве одной недели примите период из семи дней, первый из которых начинается 1 января 2020 года. Например, первая
неделя года — 1–7 января, а третья — 15–21 января. (сайт)
Вывести в порядке убывания популярности доменные имена 2-го уровня, используемые пользователями для электронной
почты. Полученный результат необходимо дополнительно отсортировать по возрастанию названий доменных имён.
(сайт)
Решение
SELECT SUBSTRING_INDEX(email, '@', -1) AS domain,
COUNT(substring_index(email, '@', -1)) AS count
FROM Users
GROUP BY domain
ORDER BY count DESC,
domain;
Выведите отсортированный список (по возрастанию) фамилий и имен студентов в виде Фамилия.И.
(сайт)
Решение
SELECT CONCAT(last_name, '.', LEFT(first_name, 1), '.') AS name
FROM Student
ORDER BY name;
Вывести количество бронирований по каждому месяцу каждого года, в которых было хотя бы 1 бронирование. Результат
отсортируйте в порядке возрастания даты бронирования. (сайт)
Решение
SELECT YEAR(start_date) AS year,
MONTH(start_date) AS month,
COUNT(*) AS amount
FROM Reservations
GROUP BY YEAR(start_date),
MONTH(start_date)
ORDER BY year,
month;
Необходимо вывести рейтинг для комнат, которые хоть раз арендовали, как среднее значение рейтинга отзывов
округленное до целого вниз. (сайт)
Решение
SELECT room_id,
FLOOR(AVG(rating)) AS rating
FROM Reservations rs
JOIN Reviews rw ONrw.reservation_id=rs.idGROUP BY room_id;
Вывести список комнат со всеми удобствами (наличие ТВ, интернета, кухни и кондиционера), а также общее количество
дней и сумму за все дни аренды каждой из таких комнат. (сайт)
Решение
SELECT home_type,
address,
IFNULL(SUM(total /rs.price), 0) AS days,
IFNULL(SUM(total), 0) AS total_fee
FROM Rooms rm
LEFT JOIN Reservations rs ONrs.room_id=rm.idWHERE has_tv =1AND has_internet =1AND has_kitchen =1AND has_air_con =1GROUP BY home_type,
address;
Вывести время отлета и время прилета для каждого перелета в формате "ЧЧ:ММ, ДД.ММ - ЧЧ:ММ, ДД.ММ", где часы и минуты
с ведущим нулем, а день и месяц без. (сайт)
Решение
SELECT CONCAT(
DATE_FORMAT(time_out, '%H:%i, %e.%c'),
' - ',
DATE_FORMAT(time_in, '%H:%i, %e.%c')
) AS flight_time
FROM Trip;
Для каждой комнаты, которую снимали как минимум 1 раз, найдите имя человека, снимавшего ее последний раз, и дату,
когда он выехал (сайт)
Решение
SELECTrs.room_id,
name,
dateAS end_date
FROM (
SELECT room_id,
MAX(end_date) ASdateFROM Reservations
GROUP BY room_id
) rs
JOIN Reservations rsv ONrs.room_id=rsv.room_idANDrs.date=rsv.end_dateJOIN Users us ONrsv.user_id=us.id;
Вывести идентификаторы всех владельцев комнат, что размещены на сервисе бронирования жилья и сумму, которую они
заработали (сайт)
Решение
SELECT owner_id,
IFNULL(SUM(total), 0) AS total_earn
FROM Rooms rm
LEFT JOIN Reservations rs ONrm.id=rs.room_idGROUP BY owner_id;
Необходимо категоризовать жилье на economy, comfort, premium по цене соответственно <= 100,
100 < цена < 200, >= 200. В качестве результата вывести таблицу с названием категории и количеством жилья, попадающего в
данную категорию (сайт)
Решение
SELECT CASE
WHEN price <=100 THEN 'economy'
WHEN price >100AND price <200 THEN 'comfort'
WHEN price >=200 THEN 'premium'
END AS category,
COUNT(price) AS count
FROM Rooms
GROUP BY category;
Найдите какой процент пользователей, зарегистрированных на сервисе бронирования, хоть раз арендовали или сдавали в
аренду жилье. Результат округлите до сотых. (сайт)
Решение
SELECT ROUND(
(
SELECTCOUNT(*)
FROM (
SELECT DISTINCT owner_id
FROM Rooms rm
JOIN Reservations rs ONrm.id=rs.room_idUNIONSELECT user_id
FROM Reservations
) active_users
) *100/ (
SELECTCOUNT(*)
FROM Users
),
2
) AS percent;
Выведите среднюю стоимость бронирования для комнат, которых бронировали хотя бы один раз. Среднюю стоимость
необходимо округлить до целого значения вверх. (сайт)
Решение
SELECT room_id,
CEILING(AVG(price)) AS avg_price
FROM Reservations
GROUP BY room_id;
Выведите id тех комнат, которые арендовали нечетное количество раз
(сайт)
Решение
SELECT room_id,
COUNT(*) AS count
FROM Reservations
GROUP BY room_id
HAVING count % 2!=0;
Выведите идентификатор и признак наличия интернета в помещении. Если интернет в сдаваемом жилье присутствует, то
выведите «YES», иначе «NO». (сайт)
Решение
SELECT id,
IF(has_internet =1, 'YES', 'NO') AS has_internet
FROM Rooms;
Выведите фамилию, имя и дату рождения студентов, кто был рожден в мае.
(сайт)
Решение
SELECT last_name,
first_name,
birthday
FROM Student
WHERE MONTHNAME(birthday) ='May';
Вывести имена всех пользователей сервиса бронирования жилья, а также два признака: является ли пользователь
собственником какого-либо жилья (is_owner) и является ли пользователь арендатором (is_tenant). В случае наличия у
пользователя признака необходимо вывести в соответствующее поле 1, иначе 0.
(сайт)
Решение
SELECT name,
IF(
id IN (
SELECT owner_id
FROM Rooms
),
1,
0
) AS is_owner,
IF(
id IN (
SELECT user_id
FROM Reservations
),
1,
0
) AS is_tenant
FROM Users;
Создайте представление с именем "People", которое будет содержать список имен (first_name) и фамилий (last_name)
всех студентов (Student) и преподавателей(Teacher) (сайт)
Решение
CREATEVIEWPeopleASSELECT first_name,
last_name
FROM Student
UNIONSELECT first_name,
last_name
FROM Teacher;
Выведите всех пользователей с электронной почтой в «hotmail.com»
(сайт)
Решение
SELECT*FROM Users
WHERE email RLIKE '@hotmail.com';
Выведите поля id, home_type, price у всех комнат из таблицы Rooms. Если комната имеет телевизор и интернет
одновременно, то в качестве цены в поле price выведите цену, применив скидку 10%
(сайт)
Решение
SELECT id,
home_type,
IF(has_tv AND has_internet, price *0.9, price) AS price
FROM Rooms;
Создайте представление «Verified_Users» с полями id, name и email, которое будет показывает только тех
пользователей, у которых подтвержден адрес электронной почты. (сайт)
Решение
CREATEVIEWVerified_UsersASSELECT id, name, email
FROM Users
WHERE email_verified_at IS NOT NULL;