У меня есть таблица сотрудников ниже:
EMP_ID DEPT_ID
101 1
102 2
103 3
104 1
И таблица DEPARTMENT как:
DEPT_ID COUNTS
1
2
3
Я хочу написать запрос, который бы подсчитывал количество сотрудников, принадлежащих отделу, и сохранял его в таблице столбцов отдела, чтобы таблица отдела выглядела следующим образом:
DEPT_ID COUNTS
1 2
2 1
3 1
Решение
update department p
set counts = (select count(*) from EMPLOYEE e where p.dept_id = e.dept_id);
Но я действительно не понимаю, как это работает внутри. Как он узнает, какие отделы в отделе должны устанавливать счетчики? что именно возвращает этот подзапрос "select count (*) из EMPLOYEE e, где p.dept_id = e.dept_id"