przyklady_sql.pdf
(
89 KB
)
Pobierz
Przyk³ady rozwi¹zañ zadañ w jêzyku SQL:
Przykłady rozwiązań zadań w języku SQL:
1.
Podać datę pierwszego i ostatniego egzaminu przeprowadzonego w każdym z ośrodków.
SELECT o.id_osrodek, nazwa_o, MAX(data_egz), MIN(data_egz)
FROM osrodki o, egzaminy e
WHERE o.id_osrodek = e.id_osrodek(+)
GROUP BY o.id_osrodek, nazwa_o ;
2.
Który egzaminator przeprowadził najwięcej egzaminów w poszczególnych ośrodkach?
SELECT o.id_osrodek, nazwa_o, g.id_egzaminator, nazwisko, imie, COUNT(*)
FROM osrodki o, egzaminy e, egzaminatorzy g
WHERE o.id_osrodek = e.id_osrodek and g.id_egzaminator = e.id_egzaminator
GROUP BY o.id_osrodek, nazwa_o, g.id_egzaminator, nazwisko, imie
HAVING COUNT(*) = (SELECT MAX(count(*)) FROM egzaminy
WHERE id_osrodek = o.id_osrodek
GROUP BY id_osrodek, id_egzaminator) ;
3.
Który student zdawał pierwszy egzamin w każdym z ośrodków?
SELECT o.id_osrodek, nazwa_o, s.id_student, nazwisko, imie, data_egz
FROM osrodki o, egzaminy e, studenci s
WHERE o.id_osrodek = e.id_osrodek and s.id_student = e.id_student
GROUP BY o.id_osrodek, nazwa_o, s.id_student, nazwisko, imie, data_egz
HAVING data_egz = (SELECT MIN(data_egz) FROM egzaminy
WHERE id_osrodek = o.id_osrodek
GROUP BY id_osrodek) ;
4.
Ile osób zdawało egzaminy w poszczególnych ośrodkach?
SELECT o.id_osrodek, nazwa_o NAZWA, COUNT(DISTINCT e.id_student) LICZBA_OSÓB
FROM osrodki o, egzaminy e
WHERE o.id_osrodek = e.id_osrodek(+)
GROUP BY o.id_osrodek, nazwa_o ;
1
5.
Który egzaminator egzaminował najwięcej osób?
SELECT e.id_egzaminator, nazwisko, imie
FROM egzaminatorzy g, egzaminy e
WHERE g.id_egzaminator = e.id_egzaminator
GROUP BY e.id_egzaminator, nazwisko, imie
HAVING COUNT(DISTINCT id_student) = (SELECT MAX(COUNT(DISTINCT id_student))
FROM egzaminy GROUP BY id_egzaminator)
6.
W którym miesiącu i którego roku przeprowadzono najwięcej egzaminów w ośrodku o nazwie Atena?
Podać nazwę miesiąca i rok czterocyfrowy.
SELECT TO_CHAR(Data_egz,'MONTH,YYYY') Data_egz, o.id_osrodek, Nazwa_o, COUNT(*)
FROM osrodki o, egzaminy e
WHERE o.id_osrodek = e.id_osrodek AND nazwa_o = 'Atena'
GROUP BY TO_CHAR(Data_egz,'MONTH,YYYY'), o.id_osrodek, Nazwa_o
HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM osrodki o1, egzaminy e1
WHERE o1.id_osrodek = e1.id_osrodek AND nazwa_o = 'Atena'
GROUP BY o1.id_osrodek, to_char(data_egz,'MONTH,YYYY'))
7.
Zdefiniować perspektywę, która umożliwi wyświetlenie informacji na temat:
Z których przedmiotów przeprowadzono najwięcej egzaminów w poszczególnych ośrodkach? Podać
identyfikator i nazwę ośrodka oraz identyfikator i nazwę przedmiotu.
CREATE VIEW v_test_1 AS
SELECT o.id_osrodek, nazwa_o , p.id_przedmiot, nazwa_p, COUNT(*) Liczba
FROM przedmioty p, egzaminy e, osrodki o
WHERE p.id_przedmiot = e.id_przedmiot AND o.id_osrodek = e.id_osrodek
GROUP BY o.id_osrodek, nazwa_o, p.id_przedmiot, nazwa_p
HAVING COUNT(*) = (SELECT MAX(count(*)) FROM egzaminy
WHERE id_osrodek = o.id_osrodek
GROUP BY id_osrodek, id_przedmiot) ;
2
Plik z chomika:
bomaszko
Inne pliki z tego folderu:
Universal.SQL.Editor.v1.3.3.2.exe
(3661 KB)
Kurs-Podstawy MySQL.pdf
(195 KB)
SQL. Optymalizacja.pdf
(1365 KB)
sql_podstawy.pdf
(348 KB)
przyklady_sql.pdf
(89 KB)
Inne foldery tego chomika:
_ Basic _ QBasic ---
_ DOS _---
_ EDYTORY - IDE - GUI
_ EMULATORY - interpretery
_ LITERATURA
Zgłoś jeśli
naruszono regulamin