Это запрос, который я создал, чтобы получить список команд, в которые входит пользователь:
select user_teams.team_id, teams.team_name from
(
select distinct(team_id) from workflows where workflow_id in (
select workflow_id from user_workflows where user_name in
(
'johndoe'
)
)
) user_teams join tbl_teams teams on user_teams.team_id = teams.team_id;
Результат выглядит следующим образом:
team_id team_name
1 Team A
5 Team E
Как я могу добавить еще один столбец, значением которого будет количество рабочих процессов из этой команды, назначенных пользователю?
(я могу найти это в таблице рабочих процессов и таблицы user_workflows)
Это должно выглядеть следующим образом:
user_name team_id team_name workflow_count
johndoe 1 Team A 127
johndoe 5 Team E 96
Я создал этот запрос, но не могу понять, как добавить его результат в новый столбец на основе team_id и user_name из предыдущего query:
select count(distinct(workflow_id, user_name)) from user_workflows
where user_name = 'johndoe'
and workflow_id in
(
select workflow_id from workflows where team_id in
(
select team_id from tbl_teams where team_name in ('Team A')
)
)
Любые советы о том, как мне этого добиться?
РЕДАКТИРОВАТЬ:
Добавление определения таблицы:
tbl_teams(team_id bigserial, team_name text)
workflows(workflow_id bigserial, team_id int8 references(tbl_teams(team_id)), workflow_name)
user_workflows(user_workflow_id bigserial, workflow_id int8 references(workflows(workflow_id)), user_name text)
Добавление примеров данных:
tbl_teams:
team_id team_name
1 Team A
2 Team B
3 Team C
4 Team D
5 Team E
workflows:
workflow_id team_id workflow_name
1 1 Audit
2 1 Refund
3 3 Purchase
4 4 Discontinue
5 3 Payment
user_workflows:
user_workflow_id workflow_id user_name
1 1 johndoe
2 1 janedoe
3 1 alex
4 3 ron
5 5 stacey
6 2 johndoe
7 2 janedoe
8 5 ron
9 5 johndoe
Идеальный результат запроса:
user_name team_id team_name workflow_count
johndoe 1 Audit 2
johndoe 3 Payment 1
alex 1 Audit 1
ron 3 Purchase 2