| Автор: | Варламова Е.Д. | Ограничение времени: | 1 сек | |
| Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
| Выходной файл: | test.log |
В Долине Фей начинается подготовка к празднику весеннего равноденствия. До рассвета нужно зажечь фонарики, раскрыть первые бутоны, наполнить ручьи талой водой, разбудить лесных зверят и украсить главную поляну.
У каждой феи есть свой дар: свет, цветы, вода, животные, мастерство или другой дар. Каждое праздничное задание
можно выполнить только с помощью определённого дара. Фея может выполнить задание, если её дар совпадает со значением
поля required_gift у этого задания.
Королева Клэрион хочет выбрать ведущих фей для праздничного маршрута. Ей нужны только те феи, чей дар понадобится не просто несколько раз, а в разных уголках Долины. Поэтому фея подходит, если она может выполнить задания как минимум в двух различных местах праздника.
База данных имеет следующую структуру:
CREATE TABLE IF NOT EXISTS Fairies (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
gift TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS FestivalTasks (
id INTEGER PRIMARY KEY,
task_name TEXT NOT NULL,
area TEXT NOT NULL,
required_gift TEXT NOT NULL,
magic_points INTEGER NOT NULL
);
Требуется составить SQL-запрос, который для каждой подходящей феи выведет:
fairy_name — имя феи;gift — её волшебный дар;area_count — количество различных мест, где есть задания для её дара;task_count — общее количество заданий, которые фея может выполнить;total_magic — суммарное количество волшебных очков magic_points за эти задания.
Результатом выполнения запроса должен быть список кортежей
(fairy_name, gift, area_count, task_count, total_magic).
Выводить нужно только тех фей, для которых area_count не меньше 2.
Список нужно отсортировать по убыванию area_count, затем по убыванию total_magic,
а при равенстве — по возрастанию fairy_name.
Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Предполагается, что для работы с базой данных используется SQLite3.