wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

SQL_Agreg_GRBY

Total questions: 11

Worksheet time: 29mins

Name
Class
Date
1.

Które zapytanie wyświetli dane (imię, nazwisko i PESEL) wszystkich pracowników uczelni 'UczelniaA' i 'UczelniaB' oraz jeśli w obu tabelach znajduje się taki sam pracownik, wyświetl go tylko raz, a wyniki posortuje według nazwiska.

a)

SELECT imie, nazwisko, pesel FROM UczelniaA

UNION

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko;

b)

SELECT imie, nazwisko, pesel FROM UczelniaA

ORDER BY nazwisko

UNION

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko;

c)

SELECT imie, nazwisko, pesel FROM UczelniaA

UNION ALL

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko;

d)

SELECT imie, nazwisko, pesel FROM UczelniaA

ORDER BY nazwisko

UNION ALL

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko;

2.

Które zapytanie wyświetli pracowników (imie, nazwisko, pesel), którzy pracują zarówno na uczelni UczelniaA, jak i na uczelni UczelniaB, a wyniki posortuje według nazwiska malejąco?

a)

SELECT imie, nazwisko, pesel FROM UczelniaA

INTERSECT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko DESC;

b)

SELECT imie, nazwisko, pesel FROM UczelniaA

INTERSECT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

c)

SELECT imie, nazwisko, pesel FROM UczelniaA

ORDER BY nazwisko DESC

INTERSECT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko DESC;

d)

SELECT imie, nazwisko, pesel FROM UczelniaA

ORDER BY nazwisko ASC

INTERSECT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

e)

SELECT* FROM UczelniaA

ORDER BY nazwisko ASC

INTERSECT

SELECT * FROM UczelniaB

ORDER BY nazwisko ASC;

3.

Które zapytanie pozwoli stwierdzić, którzy z pracowników uczelni UczelniaA nie pracują jednocześnie na uczelni UczelniaB. Wyniki posortuj według nazwiska rosnąco.

a)

SELECT imie, nazwisko, pesel FROM UczelniaA

EXCEPT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

b)

SELECT imie, nazwisko, pesel FROM UczelniaA

INTERSECT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

c)

SELECT imie, nazwisko, pesel FROM UczelniaA

UNION ALL

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

d)

SELECT imie, nazwisko, pesel FROM UczelniaA

ORDER BY nazwisko ASC

EXCEPT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

e)

SELECT imie, nazwisko, pesel FROM UczelniaA

ORDER BY nazwisko ASC

INTERSECT

SELECT imie, nazwisko, pesel FROM UczelniaB

ORDER BY nazwisko ASC;

4.

Które zapytanie (zapytania?) pozwoli (pozwolą?) stwierdzić, którzy pracownicy zarabiają mniej niż 1000 zł lub zarabiają więcej niż 2000 zł

a)

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa < 1000

UNION ALL

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa > 2000

b)

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa <= 1000

UNION ALL

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa >= 2000

c)

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa < 1000 OR placa > 2000;

d)

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa < 1000 AND placa > 2000;

e)

SELECT imie, nazwisko, placa

FROM pracownicy

WHERE placa NOT BETWEEN 1000 AND 2000;

5.

Które zapytanie pozwoli sprawdzić, jaka jest różnica pomiędzy minimalną a maksymalną pensją?

a)

SELECT (MAX(placa) - MIN(placa)) as RoznicaPensji

FROM pracownicy;

b)

SELECT (MIN(placa) - MAX(placa)) as RoznicaPensji

FROM pracownicy;

c)

SELECT (AVG(placa) - MIN(placa)) as RoznicaPensji

FROM pracownicy;

d)

SELECT (AVG(placa) - MAX(placa)) as RoznicaPensji

FROM pracownicy;

6.

Które zapytanie pozwoli policzyć wszystkich aktywnych pracowników.

a)

SELECT COUNT(*) as LiczbaAktywnychPracowników

FROM employee

WHERE Active = 1;

b)

SELECT COUNT(*) as LiczbaAktywnychPracowników

FROM employee;

c)

SELECT COUT(*) as LiczbaAktywnychPracowników

FROM employee

WHERE Active = 1;

d)

SELECT COUT(*) as LiczbaAktywnychPracowników

FROM employee;

7.

Które zapytanie pozwoli policzyć wszystkich pracowników, którzy nie mają podanego numeru PESEL?

a)

SELECT COUNT(*) as PracownicyBezPeselu

FROM pracownicy

WHERE PESEL IS NULL;

b)

SELECT COUT(*) as PracownicyBezPeselu

FROM pracownicy

WHERE PESEL IS NULL;

c)

SELECT COUT(*) as PracownicyBezPeselu

FROM pracownicy

WHERE PESEL = NULL;

d)

SELECT COUT(*) as PracownicyBezPeselu

FROM pracownicy

WHERE PESEL = NULL;

8.

Które zapytanie (zapytania?) pozwoli (pozwolą?) policzyć ile pracodawca wydaje rocznie na pensje?

a)

SELECT SUM(Salary) * 12 as RocznaSumaPensji

FROM Employee

WHERE Active = 1

b)

SELECT SUM(Salary * 12) as RocznaSumaPensji

FROM Employee

WHERE Active = 1

c)

SELECT Salary(SUM) * 12 as RocznaSumaPensji

FROM Employee

WHERE Active = 1

d)

SELECT LICZ(Salary) * 12 as RocznaSumaPensji

FROM Employee

WHERE Active = 1

e)

SELECT AVG(Salary) * 12 as RocznaSumaPensji

FROM Employee

WHERE Active = 1

9.

Które zapytanie (zapytania?) pozwoli (pozwolą?) policzyć ile pracodawca wydaje rocznie na pensje?

a)

SELECT rodzaj, SUM(cena) as LacznaCenaUslug FROM uslugi GROUP BY rodzaj;

b)

SELECT rodzaj, SUM(cena) as LacznaCenaUslug FROM uslugi ORDER BY rodzaj;

c)

SELECT rodzaj, AVG(cena) as LacznaCenaUslug FROM uslugi GROUP BY rodzaj;

d)

SELECT rodzaj, MAX(cena) as LacznaCenaUslug FROM uslugi ORDER BY rodzaj;

e)

SELECT rodzaj, COUNT(cena) as LacznaCenaUslug FROM uslugi GROUP BY rodzaj;

10.

Które zapytanie pozwoli obliczyć średnią, minimalną oraz najwyższą płacę dla poszczególnych działów?

a)

SELECT DepartmentId as Dzial,

AVG(Salary) as SredniaPlaca,

MIN(Salary) as NajniszaPlaca,

MAX(Salary) as NajwyzszaPlaca

FROM employee

GROUP BY DepartmentId;

b)

SELECT DepartmentId as Dzial,

AVG(Salary) as SredniaPlaca,

MIN(Salary) as NajniszaPlaca,

MAX(Salary) as NajwyzszaPlaca

FROM employee

ORDER BY DepartmentId;

c)

SELECT DepartmentId as Dzial,

SUM(Salary) as SredniaPlaca,

MIN(Salary) as NajniszaPlaca,

MAX(Salary) as NajwyzszaPlaca

FROM employee

ORDER BY DepartmentId;

d)

SELECT DepartmentId as Dzial,

COUNT(Id),

AVG(Salary) as SredniaPlaca,

MIN(Salary) as NajniszaPlaca,

MAX(Salary) as NajwyzszaPlaca

FROM employee

GROUP BY DepartmentId;

11.

Jaki błąd znajduje się w poniższej instrukcji w SQL-u?

SELECT zam_numer, COUNT(*) AS elementy

FROM ElementyZamowienia

GROUP BY elementy

HAVING COUNT(*) >= 3

ORDER BY elementy, zam_numer;

a)

Klauzula GROUP BY elementy jest nieprawidłowa. W klauzuli GROUP BY trzeba użyć zwykłej kolumny, a nie kolumny używanej w agregacji. Dozwolona byłaby tu klauzula GROUP BY zam_numer.

b)

Klauzula ORDER BY jest nieprawidłowa. W klauzuli ORDER BY trzeba po przecinku powtórzyć 'ORDER BY' by zapytanie prawidłowo sortowało.

c)

Klauzula HAVING jest nieprawidłowa. W klauzuli HAVING trzeba użyć zwykłej kolumny, a nie kolumny używanej w agregacji.