Автор: | О. Константинов | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
База данных представлена одной таблицей Numbers
, в
которой хранится набор целых чисел Value
.
Требуется вычислить минимальное и максимальное значения,
сумму и количество чисел в таблице,
среднее значение среди всех чисел.
Ниже представлено детальное DDL-описание таблицы:
TABLE Numbers ( -- хранит список целых чисел
Value INTEGER NOT NULL -- целое число
DEFAULT (0)
);
Результатом выполнения запроса должен быть единственный кортеж
(MinValue, MaxValue, SumValue, CountValue, AvgValue)
.
Описание полей запроса:
MinValue
- минимальное значение;MaxValue
- максимальное значение;SumValue
- сумма чисел;CountValue
- количество чисел;AvgValue
- среднее значение.Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Полагается, что для работы с базой данных используется SQLite3.
Автор: | О. Константинов | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
В базе данных торговой компании хранится список сотрудников Employees
и список
департаментов Departments
. Каждый сотрудник может числиться только в одном департаменте или
не числиться ни в одном из них. Также, существуют новые департаменты без сотрудников.
Ниже представлено детальное DDL-описание таблиц:
TABLE Employees ( -- хранит список сотрудников
ID INTEGER PRIMARY KEY AUTOINCREMENT -- уникальный идентификатор
NOT NULL,
FullName TEXT NOT NULL, -- ФИО сотрудника
Age INTEGER CHECK (Age >= 0), -- возраст сотрудника
DepartmentID INTEGER REFERENCES Departments (ID) -- идентификатор департамента
);
TABLE Departments ( -- хранит список департаментов
ID INTEGER PRIMARY KEY AUTOINCREMENT -- уникальный идентификатор
NOT NULL,
Name TEXT NOT NULL -- название департамента
UNIQUE
);
Требуется из таблицы Departments
выбрать все департаменты и
указать какое количество сотрудников числится в каждом из них. Схема БД в UML-нотации:
Результатом выполнения запроса должен быть список кортежей
(DepartmentName, TotalPeople)
.
Описание полей запроса:
Department
- название департамента;TotalPeople
- количество сотрудников в департаменте.Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Полагается, что для работы с базой данных используется SQLite3.
Автор: | О. Константинов | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
Для таблицы Sales
со структурой:
ID
- уникальный идентификатор записи;ProductName
- наименование товара;QuantitySold
- количество проданного;Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Полагается, что для работы с базой данных используется SQLite3.
Автор: | О. Константинов | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
Требуется из таблицы Employees
выбрать ФИО сотрудников мужчин
в возрасте от 35 до 70 включительно. Поля таблицы Employees
:
ID
- уникальный идентификатор записи;FullName
- ФИО сотрудника;Age
- возраст сотрудника;Sex
- пол сотрудника (male - мужчина, female - женщина).Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Полагается, что для работы с базой данных используется SQLite3.
Автор: | О. Константинов | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
Товарооборот магазина одежды фиксируется в базе данных этой компании.
БД хранит список товаров Products
, список категорий товаров
Categories
, список купленных у поставщиков товаров PurchaseItems
и список проданных клиентам товаров SalesItems
.
У товара поле CategoryID
может быть NULL
,
если товар не подходи ни под одну из существующих категорий.
Если товар ни разу не закупался и не продавался, то его следует игнорировать.
Ниже представлено детальное DDL-описание таблиц:
TABLE Categories ( -- хранит список категорий товаров
ID INTEGER NOT NULL -- уникальный идентификатор
PRIMARY KEY AUTOINCREMENT,
Name TEXT UNIQUE -- наименование категории
NOT NULL
);
TABLE Products ( -- хранит список товаров
ID INTEGER NOT NULL -- уникальный идентификатор
PRIMARY KEY AUTOINCREMENT,
Title TEXT UNIQUE -- название товара
NOT NULL,
CategoryID INTEGER, -- идентификатор категории
SellingPrice REAL CHECK (SellingPrice > 0) -- розничная цена продажи товара
NOT NULL,
FOREIGN KEY (
CategoryID
)
REFERENCES Categories (ID) ON DELETE CASCADE
);
TABLE PurchaseItems ( -- хранит список товаров, купленных у поставщиков
ID INTEGER NOT NULL -- уникальный идентификатор
PRIMARY KEY AUTOINCREMENT,
ProductID INTEGER NOT NULL, -- идентификатор товара
QuantityBought INTEGER NOT NULL -- количество купленного товара (штук)
CHECK (QuantityBought > 0)
DEFAULT (1),
FOREIGN KEY (
ProductID
)
REFERENCES Products (ID) ON DELETE CASCADE
);
TABLE SalesItems ( -- хранит список проданных клиентам товаров
ID INTEGER NOT NULL -- уникальный идентификатор
PRIMARY KEY AUTOINCREMENT,
ProductID INTEGER NOT NULL, -- идентификатор товара
QuantitySold INTEGER NOT NULL -- количество проданного товара (штук)
CHECK (QuantitySold > 0)
DEFAULT (1),
FOREIGN KEY (
ProductID
)
REFERENCES Products (ID) ON DELETE CASCADE
);
Требуется вывести список закончившихся товаров. Схема БД в UML-нотации:
Результатом выполнения запроса должен быть список кортежей
(Title, CategoryName, SellingPrice)
для товаров с
нулевым остатком, отсортированный по убыванию розничных цен продажи.
Описание полей запроса:
Title
- название товара;CategoryName
- наименование категории;SellingPrice
- розничная цена продажи товара.Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Полагается, что для работы с базой данных используется SQLite3.