Как выбрать из соединения таблиц уникальные значения?

Путем соединения таблиц HR.EMPLOYEES, HR.DEPARTMENTS и HR.LOCATIONS посчитать среднюю зарплату сотрудников, которые работают в разных странах. Попробовал сделать так:

select e.department_id, avg(salary) as avg_salary from hr.employees e
join hr.departments j on (e.department_id = j.department_id)
join hr.locations l on (j.location_id = l.location_id)
having unique(l.country_id)

Но это не сработало, как можно выбрать только разные страны? Вот примеры таблиц: hr.employees:

EMPLOYEE_ID FIRST_NAME  LAST_NAME   EMAIL   PHONE_NUMBER    HIRE_DATE   JOB_ID  SALARY COMMISSION_PCT   MANAGER_ID  DEPARTMENT_ID
   100   Steven           King     SKING    515.123.4567    17-JUN-03   AD_PRES   24000      -         -             90

hr.departments:

DEPARTMENT_ID   DEPARTMENT_NAME MANAGER_ID  LOCATION_ID
10              Administration  200           1700

hr.locations:

LOCATION_ID STREET_ADDRESS        POSTAL_CODE   CITY    STATE_PROVINCE  COUNTRY_ID
1000        1297 Via Cola di Rie    00989       Roma      -               IT

UPD: Попробовал так:

select e.department_id, avg(salary) as avg_salary, l.country_id from hr.employees e, hr.locations l
join hr.departments j on (e.department_id = j.department_id)
join hr.locations l on (j.location_id = l.location_id)
group by l.country_id

Выводит ошибку: "E"."DEPARTMENT_ID": invalid identifier


Ответы (1 шт):

Автор решения: Егор Банин

Что насчёт group by? Вам же надо сгруппировать результат по странам. Ну и группируйте. id департамента вам не нужен, только country_id и avg(salary).

→ Ссылка