mirror of
https://github.com/sharkdp/bat
synced 2024-12-29 13:43:05 +00:00
266 lines
8.9 KiB
SQL
266 lines
8.9 KiB
SQL
-- interships
|
|
create table interships
|
|
(intership_id number(7) constraint intership_id_pk primary key,
|
|
name varchar2(50),
|
|
start_date date,
|
|
end_date date);
|
|
|
|
|
|
insert into interships
|
|
values
|
|
(1,
|
|
'Leaderator 2019',
|
|
to_date('15/02/2019', 'DD/MM/YYYY'),
|
|
to_date('01/09/2019', 'DD/MM/YYYY'));
|
|
|
|
insert into interships
|
|
(intership_id, name, start_date)
|
|
values
|
|
(2, 'Leaderator 2020', to_date('10/02/2019', 'DD/MM/YYYY'));
|
|
|
|
commit;
|
|
|
|
-- directions
|
|
create table directions
|
|
(direction_id number(7) constraint direction_id_pk primary key,
|
|
name varchar2(50));
|
|
|
|
insert into directions values (1, 'Data Science');
|
|
|
|
insert into directions values (2, 'Oracle Development');
|
|
|
|
commit;
|
|
|
|
-- participants
|
|
create table participants
|
|
(participant_id number(7) constraint participant_id_pk primary key,
|
|
first_name varchar2(25),
|
|
last_name varchar2(25),
|
|
personal_id number(11),
|
|
intership_id number(7) constraint participant_inter_id_fk references interships (intership_id),
|
|
direction_id number(7) constraint participant_direct_id_fk references directions (direction_id),
|
|
constraint personal_id_unique unique (personal_id));
|
|
|
|
insert into participants
|
|
values
|
|
(1, 'Erekle', 'Tvinadze', 01011234567, 1, 1);
|
|
|
|
insert into participants
|
|
values
|
|
(2, 'Mariami', 'Chakhvadze', 01011234568, 2, 2);
|
|
|
|
commit;
|
|
|
|
-- hiring_layer_types
|
|
create table hiring_layer_types
|
|
(layer_type_id number(7) constraint layer_id_pk primary key,
|
|
type varchar2(50));
|
|
|
|
insert into hiring_layer_types values (1, 'GMAT');
|
|
|
|
insert into hiring_layer_types values (2, 'Algorithms');
|
|
|
|
insert into hiring_layer_types values (3, 'Interview');
|
|
|
|
commit;
|
|
|
|
-- hiring_layers
|
|
create table hiring_layers
|
|
(layer_id number(7) constraint layer_pk primary key,
|
|
layer_type_id number(7) constraint layer_type_fk references hiring_layer_types (layer_type_id),
|
|
participant_id number(7) constraint participant_id_fk references participants (participant_id),
|
|
result number(3));
|
|
|
|
insert into hiring_layers values (1, 1, 1, 52);
|
|
|
|
insert into hiring_layers values (2, 1, 2, 80);
|
|
|
|
insert into hiring_layers values (3, 2, 2, 75);
|
|
|
|
insert into hiring_layers values (4, 3, 2, 100);
|
|
|
|
commit;
|
|
|
|
-- subjects
|
|
create table subjects
|
|
(subject_id number(7) constraint subject_id_pk primary key,
|
|
name varchar2(100),
|
|
minimum_score number(3));
|
|
|
|
insert into subjects values (1, 'SQL', 70);
|
|
|
|
insert into subjects values (2, 'Machine Learning', 70);
|
|
|
|
commit;
|
|
|
|
-- direction_subjects
|
|
create table direction_subjects
|
|
(direction_subject_id number(7) constraint direct_sub_id primary key,
|
|
direction_id number(7) constraint direct_id_fk references directions (direction_id),
|
|
subject_id number(7) constraint subject_id_fk references subjects (subject_id));
|
|
|
|
insert into direction_subjects values (1, 2, 1);
|
|
|
|
insert into direction_subjects values (2, 1, 1);
|
|
|
|
insert into direction_subjects values (3, 1, 2);
|
|
|
|
commit;
|
|
|
|
-- component_types
|
|
create table component_types
|
|
(component_type_id number(7) constraint com_type_id_pk primary key,
|
|
type varchar2(50));
|
|
|
|
insert into component_types values (1, 'Homework');
|
|
|
|
insert into component_types values (2, 'Quiz');
|
|
|
|
commit;
|
|
|
|
-- components
|
|
create table components
|
|
(component_id number(7) constraint component_id_pk primary key,
|
|
subject_id number(7) constraint sub_id_fk references subjects (subject_id),
|
|
minimum_score number(3),
|
|
component_type_id number(7) constraint com_type_id_fk references component_types (component_type_id),
|
|
weight number(3));
|
|
|
|
insert into components values (1, 1, 60, 1, 20);
|
|
|
|
insert into components values (2, 2, 65, 2, 50);
|
|
|
|
commit;
|
|
|
|
-- results
|
|
create table results
|
|
(result_id number(7) constraint result_id_pk primary key,
|
|
issue_date date,
|
|
grade number(3),
|
|
participant_id number(7) constraint particip_id_fk references participants (participant_id),
|
|
component_id number(7) constraint component_id_fk references components (component_id));
|
|
|
|
insert into results
|
|
values
|
|
(1, to_date('04/05/2020', 'DD/MM/YYYY'), 87, 2, 2);
|
|
|
|
commit;
|
|
|
|
-- learning_material_types
|
|
create table learning_material_types
|
|
(material_type_id number(7) constraint lear_material_id_pk primary key,
|
|
type varchar(50));
|
|
|
|
insert into learning_material_types values (1, 'Book');
|
|
|
|
insert into learning_material_types values (2, 'PPT');
|
|
|
|
insert into learning_material_types values (3, 'Youtube Video');
|
|
|
|
commit;
|
|
|
|
-- learning_materials
|
|
create table learning_materials
|
|
(learning_material_id number(7),
|
|
url varchar2(3000),
|
|
subject_id number(7) constraint subj_id_fk references subjects (subject_id),
|
|
material_type_id number(7) constraint material_type_id_fk references learning_material_types (material_type_id));
|
|
|
|
insert into learning_materials values (1, 'www.youtube.com', 1, 3);
|
|
|
|
commit;
|
|
|
|
-- sessions
|
|
create table sessions
|
|
(session_id number(7) constraint session_id_pk primary key,
|
|
start_date date,
|
|
end_date date,
|
|
intership_id number(7) constraint inter_idd_fk references interships (intership_id),
|
|
direction_id number(7) constraint direct_fk references directions (direction_id),
|
|
subject_id number(7) constraint subject_fk references subjects (subject_id));
|
|
|
|
-- attendances
|
|
create table attendances
|
|
(attendance_id number(7) constraint attend_id_pk primary key,
|
|
participant_id number(7) constraint participant_fk references participants (participant_id),
|
|
session_id number(7) constraint session_id_fk references sessions (session_id),
|
|
status varchar2(25));
|
|
|
|
|
|
/*
|
|
შექმენით view სადაც იქნება სტაჟირების შესახებ ინფორმაცია:
|
|
სახელი,
|
|
დაწყების თარიღი,
|
|
დასრულების თარიღი,
|
|
მონაწილეების რაოდენობა.
|
|
*/
|
|
create view intership_info
|
|
as select i.name, i.start_date, i.end_date, (select count(participant_id) from participants p where p.intership_id = i.intership_id) number_of_participants
|
|
from interships i;
|
|
|
|
/*
|
|
შექმენით view სადაც იქნება მონაწილეებზე ინფორმაცია:
|
|
სტაჟირების სახელი,
|
|
მონაწილის სახელი,
|
|
მიმართულება,
|
|
შერჩევის რამდენი ეტაპი გაიარა,
|
|
სტაჟირების სტატუსი(გაიარა, ვერ გაიარა, მიმდინარე,ვერ მოხვდა სტაჟირებაზე)
|
|
*/
|
|
create view participant_info
|
|
as select i.name intership, p.first_name, p.last_name, d.name direction,
|
|
(select count(h2.participant_id) from hiring_layers h2 where h2.participant_id = p.participant_id) number_of_layers,
|
|
case when p.direction_id is null then 'Rejected'
|
|
when i.end_date is null then 'Present'
|
|
when (select h2.result from hiring_layers h2 join hiring_layer_types l on h2.layer_type_id = l.layer_type_id where h2.participant_id = p.participant_id and l.type = 'Intership') > (select minimum_score from subjects) then 'Passed'
|
|
else 'Failed'
|
|
end status
|
|
from interships i,
|
|
participants p,
|
|
directions d
|
|
where i.intership_id = p.intership_id
|
|
and (d.direction_id = p.direction_id or p.direction_id is null);
|
|
|
|
/*
|
|
შექნენით view სადაც იქნება მიმართულებებზე ინფორმაცია:
|
|
მიმართულების სახელი,
|
|
რა საგნები ისწავლება
|
|
*/
|
|
create view direction_info
|
|
as select d.name direction, s.name subject
|
|
from directions d,
|
|
direction_subjects ds,
|
|
subjects s
|
|
where d.direction_id = ds.direction_id
|
|
and ds.subject_id = s.subject_id;
|
|
|
|
/*
|
|
შექმენით view სადც იქნება საგნების ინფორმაცია:
|
|
საგნის სახელი,
|
|
საგნის ზღვარი,
|
|
შეფასების კომპონენტები(სახელი, ზღვარი , წონა).
|
|
*/
|
|
create view subject_info
|
|
as select s.name, s.minimum_score subject_min_score, ct.type, c.minimum_score component_min_score, c.weight
|
|
from subjects s,
|
|
component_types ct,
|
|
components c
|
|
where s.subject_id = c.subject_id
|
|
and c.component_type_id = ct.component_type_id;
|
|
|
|
/*
|
|
შექმენით view დასწრების აღრიცხვა მონაწილეების მიხედვით:
|
|
სტაჟირებაზე მიმართულების მიხედვით:
|
|
რამდენი ჩატარდა,
|
|
რამდენს დაესწრო,
|
|
რამდენს არ დაესწრო.
|
|
*/
|
|
create view attendance_info
|
|
as select p.first_name, p.last_name,
|
|
(select count(s2.session_id) from sessions s2 where s2.direction_id = p.direction_id) lectures,
|
|
(select count(a2.attendance_id) from attendances a2 where a2.participant_id = p.participant_id and a2.status = 'Present') present,
|
|
(select count(a2.attendance_id) from attendances a2 where a2.participant_id = p.participant_id and a2.status = 'Absent') absent
|
|
from participants p,
|
|
attendances a,
|
|
sessions s
|
|
where p.participant_id = a.participant_id
|
|
and a.session_id = s.session_id;
|