
Лабораторные работы (А-13-07) / Дадыкин, Санганджиев / лабораторные работы (БД лаб№5 Дадыкин)
.docxЗадание №1
Выдать статистику по учебным заведениям вашего государства только прием 1990 года. Отчет должен начинаться заголовком и цифрой общим количеством записей по запросу (по приему 90-го года). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.
Create procedure p1 as
select count(*) as Kolvo from ukr where gp='90'
select vuz.uch_zavedenie, count(*) as Y1990_Abiturients from ukr
join vuz on vuz_k=cod
where gp='90' group by vuz.uch_zavedenie
having COUNT(*)>0
Задание №2
Выдать статистику по городам вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень городов с цифрами, не равными нулю.
Create procedure p2 as
select count(*) as Kolvo_gorodov from vuz_gorod where (nazvanie_stran='УКРАИНА')
select COUNT(*) as Vsego_People from ukr
select nazvanie_goroda, COUNT(*) as Number_People from ukr
join vuz_gorod on ukr.vuz_k = vuz_gorod.cod_vuza
group by vuz_gorod.nazvanie_goroda
having COUNT(*) > 0
Задание №3
Выдать статистику по вашему государству по следующим специальностям: 0401, 0405, 1002, 1004 (общее число по каждой специальности), а также в каких учебных заведениях и сколько обучается по этим специальностям. Отчет должен начинаться с соответствующего заголовка. Далее четыре таблицы, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра> (не равная нулю), а заканчивается перечнем учебных заведений с цифрами, не равными нулю.
Create procedure p3 as
select spec as STATISTICA ,count(*) as Total from ukr where spec in ('000401','000405','001002','001004')
group by spec
select Ukraina.spec, V.uch_zavedenie, COUNT(*) as Kolvo, SUM(COUNT(*)) OVER() as Total from ukr as Ukraina
join vuz as V on Ukraina.vuz_k = V.cod
where Ukraina.spec = '000401'
Group by Ukraina.spec, V.uch_zavedenie
HAVING COUNT(*) > 0;
select Ukraina.spec, V.uch_zavedenie, COUNT(*) as Kolvo, SUM(COUNT(*)) OVER() as Total from ukr as Ukraina
join vuz as V on Ukraina.vuz_k = V.cod
where Ukraina.spec = '000405'
Group by Ukraina.spec, V.uch_zavedenie
HAVING COUNT(*) > 0;
select Ukraina.spec, V.uch_zavedenie, COUNT(*) as Kolvo, SUM(COUNT(*)) OVER() as Total from ukr as Ukraina
join vuz as V on Ukraina.vuz_k = V.cod
where Ukraina.spec = '001002'
Group by Ukraina.spec, V.uch_zavedenie
HAVING COUNT(*) > 0;
select Ukraina.spec, V.uch_zavedenie, COUNT(*) as Kolvo, SUM(COUNT(*)) OVER() as Total from ukr as Ukraina
join vuz as V on Ukraina.vuz_k = V.cod
where Ukraina.spec = '001004'
Group by Ukraina.spec, V.uch_zavedenie
HAVING COUNT(*) > 0;
Задание №4
Выдать статистику по учебным заведениям вашего государства и только по лицам мужского пола. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (всего мужчин). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.
Create procedure p4 as
select pol as Men ,count(*) as Vsego_Men from ukr where pol='М'
group by pol
select vuz.uch_zavedenie, count(*) as Kolvo from ukr join vuz on vuz_k=cod
where pol='М' group by vuz.uch_zavedenie
Задание №5
Выдать статистику по всем специальностям вашего государства и только по студентам, заканчивающим учебу в 1994 году. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу (всего студентов-выпускников 1994 г.). Далее таблица, включающая перечень шифров специальностей с цифрами, не равными нулю.
Create procedure p5 as
select gok as YearGraduate ,count(*) as Total from ukr
where gok='94'
group by gok
select ukr.spec, COUNT(*) as Kolvo from ukr
join vuz on ukr.vuz_k = vuz.cod
where ukr.gok = '94'
group by ukr.spec
having COUNT(*) > 0
Задание №6
Выдать статистику по годам приема учащихся вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень годов приема с цифрами, не равными нулю.
Create procedure p6 as
select SUM(COUNT(*)) OVER() as Vsego_YearEntering from ukr
select ukr.gp as YearEntering, COUNT(*) as Count_YearEntering from ukr
group by ukr.gp
having COUNT(*) > 0
Задание №7
Выдать статистику по годам окончания учебы учащихся вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень годов окончания с цифрами, не равными нулю.
Create procedure p7 as
select SUM(COUNT(*)) OVER() as Vsego_YearGraduate_Students from ukr
select ukr.gok as YearGraduate, COUNT(*) as Count_YearGraduate_Students from ukr
group by ukr.gok
having COUNT(*) > 0