Тестовое задание
по направлению
Data Engineering
Ниже вы найдёте текст тестового задания.
После выполнения вам необходимо загрузить результат в облако и отправить ответ, заполнив форму на этом сайте.
Задание 1
Задание
Дано:
Таблицы, созданные следующими командами:
create table [Bicycle]

(

[Id] int IDENTITY(1,1) not null,

[Brand] varchar(50) not null,

[RentPrice] int not null, -- цена аренды

primary key(Id)

)

create table [Client]

(

[Id] int IDENTITY(1,1) not null,

[Name] varchar(10) not null,

[Passport] varchar(50) not null,

[Country] varchar(50) not null,

primary key(Id)

)

create table [Staff]

(

[Id] int IDENTITY(1,1) not null,

[Name] varchar(10) not null,

[Passport] varchar(50) not null,

[Date] date not null, -- дата начала работы

primary key(Id)

)

create table [Detail] -- запчасти велосипеда

(

[Id] int IDENTITY(1,1) not null,

[Brand] varchar(50) not null,

[Type] varchar(50) not null, -- тип детали (цепь, звезда, etc.)

[Name] varchar(50) not null, -- название детали

[Price] int not null,

primary key(Id)

)

create table [DetailForBicycle] -- список деталей подходящих к велосипедам

(

[BicycleId] int not null,

[DetailId] int not null,

FOREIGN KEY ([BicycleId]) REFERENCES [Bicycle] ([Id]), FOREIGN KEY ([DetailId]) REFERENCES [Detail] ([Id]) )

create table [ServiceBook] -- сервисное обслуживание велосипедов

(

[BicycleId] int not null,

[DetailId] int not null,

[Date] date not null,

[Price] int not null, -- цена работы [StaffId] int not null,

FOREIGN KEY ([BicycleId]) REFERENCES [Bicycle] ([Id]), FOREIGN KEY ([StaffId]) REFERENCES [Staff] ([Id]), FOREIGN KEY ([DetailId]) REFERENCES [Detail] ([Id]) )

create table [RentBook] -- аренда велосипеда клиентом

(

[Id] int IDENTITY(1,1) not null,

[Date] date not null, -- дата аренды

[Time] int not null, -- время на сколько взята аренда в часах

[Paid] bit not null, -- 1 оплатил; 0 не оплатил

[BicycleId] int not null,

[ClientId] int not null,

[StaffId] int not null,

FOREIGN KEY ([BicycleId]) REFERENCES [Bicycle] ([Id]), FOREIGN KEY ([StaffId]) REFERENCES [Staff] ([Id]), FOREIGN KEY ([ClientId]) REFERENCES [Client] ([Id]) )
1. Написать update запросы для предотвращения возможных ограничений и оптимизации изначальных таблиц. В комментариях укажите почему такие изменения нужны.
2. Разбить таблицы на меры и измерения.
3. Написать MDX скрипт создания OLAP куба из представленных таблиц.
4. Написать 5 MDX произвольных запросов на отображение сводных данных. Как минимум два запроса должны затрагивать данные из четырех таблиц.
Что нужно сделать:
Дано:
Работодатель требует в конце рабочего дня выкладывать все наработки в git, независимо от готовности самого кода. Представьте, что вы выполняли задание в течении нескольких дней.
Задание 2
Задание 3 (необязательное)
На примере любого выполненного задания, показать, как вы сохраните исходный код в git.
Что нужно сделать:
Дано:
Структура таблиц из задания №1 после выполнения первого пункта первого задания.
Работник получает премию к зарплате исходя из следующего:
1. Стаж работы
  • До 1 года – 5%
  • От года до 2 лет – 10%
  • От 2 лет – 15%
2. 30% от аренды велосипеда клиентом
3. 80% от ремонта велосипеда

Проценты суммируются. К примеру, работник с опытом полтора года за аренду велосипеда стоимостью 100 получит 100*0.3 + 100*0.3*0.1 = 33, а за ремонт велосипеда стоимостью 100 – 100*0.8 + 100*0.8*0.1 = 88
1. Написать процедуру очистки таблиц [Detail] и [DetailForBicycle], если деталь уже участвовала в ремонте велосипеда.
2. Написать процедуру подсчета премии всем работникам за месяц работы. Входные параметры: дата.
3. Перечислить (можно без кода) какие изменения нужно внести в БД, чтобы автоматизировать подсчет премии за текущий месяц (текущий месяц = MONTH(GETDATE()))
Что нужно сделать:
Подписывайтесь, чтобы быть в курсе всех обновлений, а также иметь возможность задавать вопросы.
Telegram-канал ASPEX EDU
Заполните личные данные, прикрепите ссылку на ваше решение и отправляйте результат.
POWER BI / AZURE / MICROSOFT / POWER BI /
Форма для отправки ответа
Телефоны для связи:
+7 (771) 853 53-53
+7 (963) 057-53-53

Наша почта:
По всем вопросам можете писать сюда hr@aspex.kz
Made on
Tilda