Вывести номера тех групп, в которых студенты сдали экзамен по предмету «тс», но не сдавали по предмету «СА»
select gr.groupNumber from studentGroup gr where (select count(*) from student
inner join ex on ex.za4otka = student.za4otka
where predmet = 'CA' and groupNumber = gr.groupNumber ) = 0 AND
(select count(*) from student
inner join ex on ex.za4otka = student.za4otka
where predmet = 'ТС' and groupNumber = gr.groupNumber ) = (select count(*)
from student
inner join ex on ex.za4otka = student.za4otka where groupNumber = gr.groupNumber
)
Вывести номера групп иэф где более 20 студентов сдали ТС на оценку , которая превышает среднюю оценку по этому предмету на фкп
declare @average as float
set @average = (select AVG(ocenka) from ex
inner join student on student.za4otka = ex.za4otka
inner join studentGroup on studentGroup.groupNumber = student.groupNumber where studentGroup.faculty = 'fcp'
)
select gr.groupNumber from studentGroup gr
where faculty = 'ief' and (select count(*) from student
inner join ex on ex.za4otka = student.za4otka where predmet = 'ТС' and ocenka > @average ) > 20
Вывести номера зачеток и фамилии студентов факультетов 'ИЭФ', 'ФКП','ФИТУ' , которые получили только 10и более ,чем по 10 предметам и сделать сортировку по убыванию количества полученных 10ок
select surname, za4otka from student
inner join studentGroup on studentGroup.groupNumber = student.groupNumber where (faculty = 'ief' OR faculty = 'fkp' OR faculty = 'fitu') AND
(select count(*) from ex
where ocenka = 10 AND za4otka = student.za4otka ) > 10
order by (select count(*) from ex
where ocenka = 10 AND za4otka = student.za4otka ) desc
Вывести номера групп, где средняя отметка группы за предмет "Теория систем" превышает среднюю отметку за "Системный анализ" этой же группы
select groupNumber from studentGroup gr
where (select AVG(ocenka) from ex
inner join student on student.za4otka = ex.za4otka
where predmet = 'теория систем' and student.groupNumber = gr.groupNumber ) > (select AVG(ocenka)
from ex
inner join student on student.za4otka = ex.za4otka
where predmet = 'системный анализ' and student.groupNumber = gr.groupNumber
)
Вывести студентов из группы '123456', которые сдали хотя бы один семест со всеми 4
select student.* from student
inner join ex exam on exam.za4otka = student.za4otka where (
select count(*) from ex
where ex.za4otka = student.za4otka AND exam.sem = ex.sem AND ocenka = 4 ) = (
select count(*) from ex
where ex.za4otka = student.za4otka AND exam.sem = ex.sem
)