Автор: | П. Месенёв | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log | |||
Максимальный балл: | 1 |
На известном автомобильном рынке `Синий угол` кипит жизнь. Плотный поток продаж и покупок делают хороший поток прибыли. Однако нечестные продавцы иногда снижают пробег автомобилей, чтобы набить цену! И некоторые наглеют настолько, что пробег после использования некоторым владельцем становится меньше, чем до того, как автомобиль попал к владельцу.
Благо, записи о сделках хранят в себе информацию о пробеге авто в момент покупки.
Ваша задача выяснить, сколько пробега было гарантированно скручено с каждого автомобиля, занесённого в базу. Так как объём авто большой, то те автомобили, для которых доказать факт мошенничества не получается, попасть в выборку не должны.
CREATE TABLE AUTO (
id INTEGER NOT NULL PRIMARY KEY,
model VARCHAR(255) NOT NULL,
year VARCHAR(255) NOT NULL,
registration_number VARCHAR(255)
);
CREATE UNIQUE INDEX auto_registration_number
ON auto(registration_number);
CREATE TABLE sellrecord (
id INTEGER NOT NULL PRIMARY KEY,
odometer INTEGER NOT NULL,
price INTEGER NOT NULL,
auto_id INTEGER NOT NULL REFERENCES auto(id),
"date" DATE NOT NULL
);
CREATE INDEX sellrecord_auto_id ON sellrecord(auto_id);
Схема БД в UML-нотации:
Результатом выполнения запроса должен быть список кортежей
(model, (количество скрученного пробега))
,
отсортированных по убыванию пробега.
Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Предполагается, что для работы с базой данных используется SQLite3.