1. Z których kierunków przeprowadzono więcej niż 7 zaliczeń ?
Select k.Kierunek_id, Nazwa, Count(*)
FROM Zaliczenia z, Kierunki k
where k.Kierunek_id = z.Kierunek_id
Group by k.Kierunek_id, Nazwa
having count(*) >7
2. Z którego przedmiotu najwięcej razy wystawiono negatywną ocenę z zaliczenia?
Select p.przedmiot_id, nazwa, wynik, count(*)
from przedmioty p, zaliczenia z
where p.przedmiot_id = z.przedmiot_id
and wynik like 'Neg%'
group by p.przedmiot_id, nazwa, wynik
having count (*)=(Select max(count(*))
from przedmioty p, zaliczenia z
where p.przedmiot_id = z.przedmiot_id
and wynik like 'Neg%'
group by p.przedmiot_id, nazwa, wynik)
3. Z jakich przedmiotów przeprowadził egzaminy wykładowca o kodzie 0009 ?
select distinct p.przedmiot_id, nazwa (przypisuje numer przedmiotu z nazwa)
from zaliczenia z, przedmioty p
where wykladowca_id='0009'
and z.przedmiot_id=p.przedmiot_id
4. Wyświetlić tych studentów (Nazwisko, Imie, id), którzy jeszcze nie zdawali przedmiotu o id=7.
select student_id, Nazwisko, imie
from Studenci
where Student_id not in
(select Student_id
from zaliczenia
where Przedmiot_id=7)
5. Wyświetlić informację, kto, jaki przedmiot i kiedy zdawał w okresie od 20 kwietnia 2009 do 20
maja 2009.
Select S.Student_id,Nazwisko,Imie,P.Nazwa,TO_CHAR(Z.Data_zal,'Day/Month/YYYY')
from Przedmioty P, Zaliczenia Z,Studenci S
where Z.data_zal>'09/04/20' and Z.data_zal<'09/05/20'
and S.Student_id=Z.Student_id and Z.Przedmiot_id=P.Przedmiot_id;
6. Wyświetlić informacje o tych kierunkach (id, nazwa), z których nie przeprowadzono jeszcze
żadnego zaliczenia.
select Kierunek_id, nazwa
from kierunki
where kierunek_id not in
(
select kierunek_id
from zaliczenia)
7. W którym miesiącu i którego roku przeprowadzono najwięcej zaliczeń?
select to_char(data_zal,'yyyy mm') okres, count(*) l_zaliczenia
from zaliczenia
group by to_char(data_zal,'yyyy mm')
having count(*)=
(select max(count(*))
from zaliczenia
group by to_char(data_zal,'yyyy month'))
8. W ilu zaliczeniach student o id 0500324 uzyskał pozytywny wynik ?
select S.student_id, Nazwisko, imie, count(*)
from studenci s,zaliczenia z
where s.student_id=z.student_id
and Wynik Like 'Z%'
and s.student_id='0500324'
group by s.student_id, nazwisko, imie
9. Podać jakie przedmioty zdawano kierunku numer 3 w miesiącu lipcu 2010 roku.
select distinct p.nazwa, p.przedmiot_id,k.kierunek_id, To_char(data_zal,' YYYY/ Month')
from zaliczenia z, przedmioty p,kierunki k
where z.przedmiot_id=p.przedmiot_id
and k.kierunek_id=z.kierunek_id
and to_char (data_zal,'yyyymm')='201007'
and k.kierunek_id=3
10. Podać informację, w jakie dni tygodnia student o id 0000060 zdawał poszczególne przedmioty.
select s.student_id, nazwisko,imie, p.przedmiot_id,nazwa (wyswietla nazwe)
data_zal
from zaliczenia z, studenci s, przedmioty p
where z.student_id=s.student_id
and s.student_id='0000060'
and p.przedmiot_id=z.przedmiot_id
11. Podać datę pierwszego i ostatniego zaliczenia przeprowadzonego z kierunku o numerze 1.
select k.kierunek_id, nazwa, min(data_zal) pierwszy,
max(data_zal) ostatni
from kierunki k, zaliczenia z
where k.kierunek_id=z.kierunek_id and k.kierunek_id=1
group by k.kierunek_id, nazwa
12. Podać datę pierwszego i ostatniego zaliczenia przeprowadzonego na kierunku „Gry i
multimedia”
select nazwa,k.kierunek_id, min(data_zal) pierwszy, max(data_zal) ostatni
from kierunki k, zaliczenia z
where k.kierunek_id=z.kierunek_id
and nazwa like 'G%ia'
group by nazwa, k.kierunek_id
13. Na ilu kierunkach studiuje każdy ze studentów?
select s.student_id, nazwisko, imie, count(distinct kierunek_id)
from studenci S, zaliczenia z
where s.student_id=z.student_id(+)
group by s.student_id, nazwisko, imie
14. Którzy wykładowcy przeprowadzili więcej niż 10 zaliczeń?
select w.wykladowca_id, nazwisko ||' '||Imie as wykładowca, count(data_zal) as liczba_zal
from wykladowcy w, zaliczenia z
where w.wykładowca_id=z.wykładowca_id(+)
group by w.wykładowca_id, nazwisko, imie
having count(data_zal) >10
15. Którzy wykładowcy mają nazwiska zaczynające się na literę B. Podać ich nazwisko, imię oraz
identyfikator ?
select Nazwisko, imie, wykladowca_id
from wykladowcy
where nazwisko like 'B%'
16. Który wykładowca przeprowadził najwięcej zaliczeń z poszczególnych przedmiotów?
select w.wykladowca_id, nazwisko, imie, p.przedmiot_id, nazwa,
count(*)
from wykladowcy w, zaliczenia z, przedmioty p
where w.wykladowca_id = z.wykladowca_id
and p.przedmiot_id = z.przedmiot_id
group by w.wykladowca_id, nazwisko, imie, p.przedmiot_id, nazwa
having count(*)=( select max (count(*))
from zaliczenia
where przedmiot_id = p.przedmiot_id
group by wykladowca_id)
order by 4
17. Który student zdobył najwięcej punktów ECTS w ramach poszczególnych kierunków?
18. Który wykładowca wystawił najwięcej negatywnych zaliczeń?
select wykladowca_id,wynik,count(*)
from zaliczenia z
where wynik like 'Neg%'
group by wykladowca_id,wynik
having count(*)=(select max(count(*))
from zaliczenia
where wynik like 'Neg%'
group by wykladowca_id)
19. Który student uzyskał negatywny wynik zaliczeń?
select student_id,wynik
from zaliczenia
where wynik like 'Neg%'
20. Który student jako pierwszy podszedł do zaliczenia w ramach każdego z kierunków?
21. Jakie przedmioty zdali już egzaminowani o id 0000061 i 0500323 ?
select x.przedmiot_id, nazwa, u.Student_id, nazwisko||' '|| U.Imie as student, V.wynik
from Studenci U, Zaliczenia v, przedmioty x
where u.Student_id=v.student_id
and x.Przedmiot_id=V.Przedmiot_id
and u.student_id='0000061'
or v.student_id='0500323'
22. Jakie osoby były egzaminowane przez wykładowcę o kodzie 0001 ?
elect distinct s.student_id, s.nazwisko,s.imie ,w.wykladowca_id, w.nazwisko, w.imie
from zaliczenia z, studenci s, wykladowcy w
where w.wykładowca_id='0001'
and z.Student_id=s.Student_id
and w.wykladowca_id=z.wykladowca_id
23. Jaki przedmiot był zaliczany przez więcej niż 5 studentów ?
select p.przedmiot_id, Nazwa, Count(*), Count(z.student_id), count(distinct z.student_id)
from przedmioty p, zaliczenia z
where p.przedmiot_id=z.przedmiot_id
Group by p.przedmiot_id, nazwa
having count(distinct z.student_id)>5
24. Jaka jest średnia wyników zaliczeń dla poszczególnych kierunków, za rok 2009?
select avg(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects
from zaliczenia z, Przedmioty p, kierunki k
where to_char(data_zal,'yyyy')='2009' and k.kierunek_id=z.kierunek_id
and z.przedmiot_id=p.przedmiot_id
and z.wynik='Zaliczony'
group by k.kierunek_id, k.nazwa, k.s_ects
25. Ilu studentów ukończyło poszczególne kierunki (zdobyło wymaganą liczbę punktów ECTS)?
select s.student_id, nazwisko, imie, sum(NVL(p.ects, 0)) l_ects, k.kierunek_id, k.nazwa, k.s_ects
from studenci S, zaliczenia z, Przedmioty p, kierunki k
where s.student_id=z.student_id and k.kierunek_id=z.kierunek_id
and z.przedmiot_id=p.przedmiot_id
and z.wynik='Zaliczony'
group by s.student_id, nazwisko, imie,k.kierunek_id, k.nazwa, k.s_ects
having sum(nvl(p.ects,0))>0.5*s_ects
26. Ile zaliczeń przeprowadzono z poszczególnych kierunków ?
select k.kierunek_id, nazwa, count(*), z.kierunek_id, count(z.kierunek_id)
from kierunki k, zaliczenia z
where k.kierunek_id=z.kierunek_id(+)
group by k.kierunek_id, nazwa, z.kierunek_id
order by 1
27. Ile zaliczeń przeprowadził wykładowca o numerze 0036 ?
select w.wykladowca_id, Nazwisko,imie, count(*)
from zaliczenia z, wykladowcy w
where w.wykladowca_id in('0006','0001')
group by w.wykladowca_id, nazwisko, imie
28. Ile zaliczeń przeprowadzili poszczególni wykładowcy, uwzględnić wszystkich wykładowców?
select w.wykladowca_id, nazwisko ||''||Imie as wykładowca, count(data_zal) as liczba_zal
from wykladowcy w, zaliczenia z
where w.wykładowca_id=z.wykładowca_id(+) <- + wyswietli wszystkich nawet jak nie przeprowadzali zaliczenia
group by w.wykładowca_id, nazwisko, imie
29. Ile punktów ECTS ma zgromadzone każdy ze studentów?
select s.student_id, nazwisko, imie, sum(p.ects) l_ects
from studenci S, zaliczenia z, Przedmioty p
where s.student_id=z.student_id(+)
and z.przedmiot_id=p.przedmiot_id(+)
and z.wynik(+)='Zaliczony'
group by s.student_id, nazwisko, imie
30. Ile osób podeszło do zaliczenia z poszczególnych przedmiotów ?
select p.przedmiot_id, nazwa, count(*), count(z.student_id)
from przedmioty p, zaliczenia z
where z.przedmiot_id=p.przedmiot_id
group by p.przedmiot_id, nazwa
-------------------------------------------
insert into
przedmioty(przedmiot_id,nazwa) (dodanie wf)
values(8,'WF')
PERSPEKTYWY
1. Stworzyć widok STUDENCI_SECURE zawierające następujące informacje z tabeli studenci:
Student_id, Nazwisko, Imie, Miasto, Ulica, nr_domu, kod_poczt.
2. Na podstawie widoku STUDENCI_SECURE wyświetlić informacje o studentach z Rzeszowa.
3. Stworzyć widok STUDENCI_ECTS prezentujący dane studenta uzupełnione o liczbę aktualnie
uzyskanych punktów ECTS w ramach poszczególnych kierunków. Uwzględnić tylko te
kierunki, na których dany student podszedł do zaliczenia.
4. Na podstawie perspektywy STUDENCI_ECTS wyświetlić informację jaki kierunek
poszczególni studenci już ukończyli.
5. Utworzyć widok WYKADOWCY_WYNIKI_ZAL informujący o liczbie zaliczeń
przeprowadzonych przez poszczególnych wykładowców z poszczególnych przedmiotów.
Należy osobno zliczyć i zaprezentować liczbę zaliczeń ogółem oraz liczbę zaliczeń z wynikiem
negatywnym.
6. Usunąć utworzone widoki.