SBD 6 1

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

1

SELECT nazwisko, etat, id_zesp


FROM pracownicy
WHERE id_zesp = (
SELECT id_zesp
FROM pracownicy
WHERE nazwisko = 'BRZEZINSKI'
)
ORDER BY nazwisko;
2
SELECT nazwisko, etat, nazwa
FROM pracownicy NATURAL INNER JOIN zespoly
WHERE id_zesp = (
SELECT id_zesp
FROM pracownicy
WHERE nazwisko = 'BRZEZINSKI'
)
ORDER BY nazwisko;
3
SELECT nazwisko, etat, TO_CHAR(zatrudniony, 'YYYY/MM/DD') AS zatrudniony
FROM pracownicy
WHERE zatrudniony = (
SELECT min(zatrudniony)
FROM pracownicy
WHERE etat = 'PROFESOR'
) AND etat = 'PROFESOR';
4
SELECT nazwisko, TO_CHAR(zatrudniony, 'YYYY/MM/DD') AS zatrudniony, id_zesp
FROM pracownicy
WHERE zatrudniony || id_zesp IN (
SELECT max(zatrudniony) || id_zesp
FROM pracownicy
WHERE id_zesp IS NOT NULL
GROUP BY id_zesp
)
ORDER BY zatrudniony;
5
SELECT id_zesp, nazwa, adres
FROM zespoly
WHERE id_zesp IS NOT NULL AND id_zesp NOT IN(
SELECT DISTINCT id_zesp
FROM pracownicy
);
6
SELECT nazwisko
FROM pracownicy
WHERE etat = 'PROFESOR' AND id_prac NOT IN(
SELECT id_szefa
FROM pracownicy
WHERE etat = 'STAZYSTA'
);
7
SELECT id_zesp, sum(placa_pod) AS suma_plac
FROM pracownicy
HAVING sum(placa_pod) IN(
SELECT max(sum(placa_pod))
FROM pracownicy
GROUP BY id_zesp
)
GROUP BY id_zesp;
8
SELECT nazwa, sum(placa_pod) AS suma_plac
FROM pracownicy NATURAL INNER JOIN zespoly
HAVING sum(placa_pod) IN(
SELECT max(sum(placa_pod))
FROM pracownicy
GROUP BY id_zesp
)
GROUP BY nazwa;
9
SELECT nazwa, count(pracownicy.id_zesp) AS ilu_pracownikow
FROM pracownicy, zespoly
WHERE pracownicy.id_zesp = zespoly.id_zesp
HAVING count(pracownicy.id_zesp) > (
SELECT count(pracownicy.id_zesp)
FROM pracownicy, zespoly
WHERE pracownicy.id_zesp = zespoly.id_zesp AND nazwa = 'ADMINISTRACJA'
GROUP BY nazwa
)
GROUP BY nazwa;
10
SELECT etat
FROM pracownicy
HAVING count(etat) = (
SELECT max(count(etat))
FROM pracownicy
GROUP BY etat
)
GROUP BY etat
ORDER BY etat;
11
SELECT etat, LISTAGG(nazwisko, ',') WITHIN GROUP (ORDER BY nazwisko) AS pracownicy
FROM pracownicy
HAVING count(etat) = (
SELECT max(count(etat))
FROM pracownicy
GROUP BY etat
)
GROUP BY etat
ORDER BY etat;
12
SELECT p.nazwisko AS pracownik, s.nazwisko AS szef
FROM pracownicy p, pracownicy s
WHERE p.id_szefa = s.id_prac
AND abs(s.placa_pod-p.placa_pod) = (
SELECT min(abs(s.placa_pod-p.placa_pod))
FROM pracownicy p, pracownicy s
WHERE p.id_szefa = s.id_prac
)
;

You might also like