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.
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.
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.
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;
5. Zwiększyć o 5% cenę produktu, którego sprzedaż była największa.