Bo bez kamienia nie ma budulca …

4.1. Nazwisk (last_name) i wypłat (salary) pracowników, którzy zarabiają ponad 90% wypłaty pracownika o nazwisku Chen.


4.2. Nazwisk (last_name) i wypłat (salary) pracowników, którzy zarabiają więcej, niż dowolny pracownik działu 'Marketing'.

4.3. Nazw działów (department_name) i liczby pracowników, w których pracuje więcej pracowników, niż w dziale 'Sales'.

4.4. Miast (city) i średnich płac (salary) pracowników, w których średnia płaca jest większa, niż maksymalna płaca w Londynie.

4.5. Nazwisk pracowników (last_name), ich wypłat (salary) i średnich płac (salary) w działach, w których pracują.

4.6. Nazwisk (last_name), nazw działów (department_name) oraz płac (salary) pracowników, którzy zarabiają najwięcej w dziale.



4.1



SELECT last_name AS "Nazwisko", salary AS "Wypłata"

FROM hr.employees

WHERE salary > (SELECT 0.9 * salary

FROM hr.employees

WHERE last_name = 'Chen')



4.2



SELECT last_name AS "Nazwisko", salary AS "Wypłata"

FROM hr.employees

WHERE salary > (SELECT MIN(e.salary)

FROM hr.employees e

JOIN hr.departments d ON e.department_id = d.department_id

WHERE d.department_name = 'Marketing')



4.3



SELECT d.department_name AS "Nazwa działu", COUNT(e.employee_id) AS "Liczba pracowników"

FROM hr.departments d

JOIN hr.employees e ON e.department_id = d.department_id

GROUP BY d.department_name

HAVING count(e.employee_id) > (SELECT COUNT(e.employee_id)

FROM hr.employees e

JOIN hr.departments d ON e.department_id = d.department_id

WHERE d.department_name = 'Sales')



4.4



SELECT l.city AS "Miasto", ROUND(AVG(e.salary),2) AS "Średnia pensja"

FROM hr.locations l

JOIN hr.departments d ON d.location_id = l.location_id

JOIN hr.employees e ON d.department_id = e.department_id

GROUP BY l.city

HAVING AVG(e.salary) > (SELECT MAX(e.salary)

FROM hr.locations l

JOIN hr.departments d ON d.location_id = l.location_id

JOIN hr.employees e ON d.department_id = e.department_id

WHERE l.city = 'London')



4.5



SELECT e.last_name AS "Nazwisko", e.salary AS "Pensja", (SELECT ROUND(AVG(Salary),2)

FROM employees

WHERE department_id = e.department_id) AS "Średnia pensja w dziale"

FROM employees e



4.6



SELECT e.last_name AS "Nazwisko", d.department_name AS "Nazwa działu", e.salary AS "Pensja"

FROM hr.employees e

JOIN hr.departments d ON d.department_id = e.department_id

WHERE e.salary = (SELECT MAX(salary)

FROM employees

WHERE department_id = e.department_id)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *