3 Savarankiškas darbas 123

mail@pastecode.io avatar
unknown
mysql
2 years ago
4.9 kB
2
Indexable
Never
/* 1 Lentelės: EMP, DEPT, PROJECTS, SALGRADE, CLIENTS

Suskaičiuokite, kiek darbuotojų uždirba 5 lygio atlyginimą.*/
select ename, job, sal, grade 
from emp, salgrade 
where sal between losal and hisal and grade = 5; 


/*2 Lentelės: CRIMES, SUSPECTS

Pateikite kas, kiek ir kokius nusikaltimus padare (vardas/pavarde, nusikaltimo pavadinimas).*/
select s.name, c.crime_type, count(c.crime_type) 
from suspects s 
natural join crimes c 
group by s.name, c.crime_type;

/* 3  Lentelės: EMP, DEPT, PROJECTS, CLIENTS

Pateikite projekto pavadinimą, projekto pradžios ir pabaigos datas bei projekto vadovo darbuotojo numerį ir pavardę. Domina tik informacija apie 2016 metais baigtus projektus.*/
select project_name, project_start_date, project_finish_date, manager_id, ename 
from projects, emp 
where manager_id = empno 
and extract(year from project_finish_date) = 2016; 


/* 4  Lentelės: EMP, DEPT, SALGARDE

Suraskite visus darbuotojus, kurių atlyginimas didesnis už jų viršininkus. */
select project_name, project_start_date, project_finish_date, manager_id, ename 
from projects, emp 
where manager_id = empno 
and extract(year from project_finish_date) = 2016; 


/* 6 Lentelės: EMP, DEPT, SALGRADE

Išvardinkite darbuotojus, kurių pareigos tokios pat kaip ir darbuotojo ALLEN (panaudokite subužklausą). */
select ename from emp 
where job IN(select job
from emp 
where ename='ALLEN'); 


/* 7 Lentelės: CRIMES, SUSPECTS

Kiek laikoma moterų kiekviename kalejime?*/
select c.prison, count(c.prison)kiek, s.sex   
from crimes c  
natural join suspects s 
group by c.prison, s.sex 
having s.sex = 'Female'; 


/*9* Lentelės: CRIMES, SUSPECTS

Pateikite nusikaltimų statistiką (visa informacija iš lentelės), kurioje atsispindi nusikaltelio lytis. */
select * from crimes;
select * from suspects;
select * from c.suspects, s.sex
/*bybiene*/


/*10 Lentelės: EMP, DEPT, SALGRADE, PROJECTS, CLIENTS

Pateikite sąrašą projektų (jų pavadinimai ir biudžetai), kurių vadovai gauna 4 lygio atlyginimus. */
select project_name, budget
from projects 
where manager_id in(select empno from emp, salgrade where sal between losal and hisal and grade=4)



/*
1
Lentelės: CRIMES, SUSPECTS
Pateikite nusikaltimų statistiką, (visą informaiją iš lentelės), kurioje atsispindi nusikaltėlio lytis*/
select crimes.*, suspects.sex from crimes join suspects
on crimes.suspect_id = suspects.suspect_id;
 
/*
2
Lentelės: CRIMES, SUSPECTS
Kiek laikoma moterų kiekviename kalėjime?*/
select prison, count(*) from crimes join suspects
on crimes.suspect_id = suspects.suspect_id
where sex='Female'
group by prison;
 
/*
3
Lentelės: EMP, DEPT, PROJECTS, CLIENTS
Pateikite projekto pavadinimą, projekto pradžios ir pabaigos datas bei projekto vadovo darbuotojo numerį ir pavardę.
Domina tik informacija apie 2016 metus pabaigtus projektus*/
select project_name, project_start_date as pradzia, project_finish_date as pabaiga, empno, ename from projects join emp
on projects.manager_id = emp.empno
where extract(year from project_finish_date) = 2016;
 
/*
4
Lentelės: EMP, DEPT, PROJECTS, CLIENTS
Suskaičiuokite kiek darbuotojų uždirba 5 lygio atlyginimą
NEDUOTA LENTELĖ SANGRADE? SUMAIŠYTA?*/
select count(*) from emp, salgrade
where grade = 5
and emp.sal between salgrade.losal and salgrade.hisal;
 
/*
5
Lentelės: EMP, DEPT, SALGRADE
Išvardinkite darbuotojus, kurių pareigos tokios pat kaip ir darbuotojo ALLEN*/
select * from emp where job in
(select job from emp where ename = 'ALLEN');

/*
6
Lentelės: EMP, DEPT, SALGRADE
Suraskite visus darbuotojus, kurių atlyginimas didesnis už jų viršininkus*/
select e1.ename as darbuotojas, e2.ename as virsininkas, e1.sal as darb_sal, e2.sal as virs_sal 
from emp e1 join emp e2
on e1.mgr = e2.empno and e1.sal > e2.sal;
 

/*
8
Lentelės: EMP, DEPT, SALGRADE, PROJECTS, CLIENTS
Pateikite sąrašą projektų (jų pavadinimai ir biudžetai), kurių vadovai gauna 4 lygio atlyginimus*/
select project_name, budget from projects join emp
on projects.manager_id = emp.empno
and sal in (select sal from emp, salgrade
where sal between losal and hisal and grade = 4);
 
/*
9
Lentelės: CRIMES, SUSPECTS
Kokia maksimali reikšmė buvo skirta už padarytą nusikaltimą ir koks jis buvo? Panaudokite sub užklausą*/
select round(months_between(end_date, start_date)) as menesiais, crime_type from crimes where round(months_between(end_date, start_date)) in
(select max(round(months_between(end_date, start_date))) from crimes);

/*
10
Lentelės: CRIMES, SUSPECTS
Pateikite kas, kiek ir kokius nusikaltimus padare (vardas/pavarde, nusikaltimo pavadinimas*/
select name, crime_type, count(*) from crimes join suspects on
crimes.suspect_id = suspects.suspect_id
group by name, crime_type
order by name;