Powtórzenie wiadomości

1. Wypisz: region, ilość pracowników, uwzględnij tylko te regiony, gdzie ilość pracowników jest większa niż 5. Posortuj malejąco wg ilości pracowników.

1-1

SELECT R.name AS nazwaRegionu, COUNT(E.id) AS iloscPracownikow
FROM emp E JOIN dept D ON D.id = E.dept_id
RIGHT JOIN region R on R.id = D.region_id
GROUP BY R.name
HAVING COUNT(*) > 5
ORDER BY COUNT(E.id) DESC;

 

2. Wypisz: tytuł zawodowy, ilość pracowników, średnie wynagrodzenie, uwzględnić tylko tych, których średnie wynagrodzenie jest większe niż $700. Dane posortować wg tych tytułów zawodowych.

1-2

SELECT E.title as tytulZawodowy, COUNT(*) AS iloscPracownikow, AVG(salary) as srednieWynagrodzenie
FROM emp E
GROUP BY E.title
HAVING AVG(salary) > 700
ORDER BY title;

 

3. Wyświetlić imię i nazwisko pracownika (konkatenacją), imię i nazwisko jego managera. Zastosuj aliasy. Posortuj wg nazwisk i imion pracowników. Uwzględnić także tych pracowników, którzy nie mają managera.

1-3

SELECT CONCAT(Ez.first_name, ' ', Ez.last_name) AS pracownik, CONCAT(Ew.first_name, ' ', Ew.last_name) AS manager
FROM emp Ez LEFT JOIN emp Ew ON Ez.manager_id=Ew.id
ORDER BY Ez.last_name, Ez.first_name;

 

4. Pobierz z bazy danych: imię i nazwisko przedstawiciela handlowego, kraj i ilość klientów w tym kraju. Posortuj wg nazwiska i imienia pracownika oraz ilości klientów w danym państwie.

SELECT CONCAT(E.id, ' ', E.first_name, ' ', E.last_name) AS przedstawicielHandlowy, C.country AS kraj, COUNT(C.id) AS iloscKlientow
FROM emp E RIGHT JOIN customer C ON E.id = C.sales_rep_id
GROUP BY E.id, C.country
ORDER BY E.last_name, E.first_name, COUNT(C.id) DESC;

1-45. Zwiększyć o 5% cenę produktu, którego sprzedaż była największa.