Как посчитать сотрудников, вовлеченных в процесс, и перечислить их имена в одной ячейке?

Я пытаюсь написать запрос, который показывает мне количество сотрудников, участвующих в проекте, а также перечисляет их имена только в одной ячейке.

select p.projectname, count(main.projectnr) "Involved employees" from projects_karl p
join mainpro_karl main
on main.projectnr = p.projectnr
join employees_karl m
on m.employeenr = main.employeenr
group by p.beschreibung
;

Этот запрос подсчитывает количество сотрудников, которые работают в определенном проекте. Но я также хочу перечислить имена вовлеченных сотрудников.

select p.projectname, count(main.projectnr) "Anzahl beteiligter MAs", m.firstname || ' ' || m.surname "Name" from projects_karl p
join mainpro_karl main
on main.projectnr = p.projectnr
join Employees_karl m
on m.employeenr = main.employeenr
group by p.projectname, m.firstname || ' ' || m.surname
;

В этом списке запросов участвовали сотрудники, но не в ячейке, а в своей строке. И функция подсчета больше не работает. Он просто считает «1» в каждой строке.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

использовать listagg()

select p.projectname, count(main.projectnr) "Anzahl beteiligter MAs", 
listagg(m.firstname || ' ' || m.surname, ',') within group (order by p.projectname) "Name" 
from projects_karl p join mainpro_karl main on main.projectnr = p.projectnr
join Employees_karl m on m.employeenr = main.employeenr
group by p.projectname

Это именно то, что мне нужно @fa06 ^^ Большое спасибо!

karl 29.05.2019 11:25

Хорошо, я буду! Мне нужно подождать 5 минут, и тогда я смогу принять ваш ответ. Еще раз большое спасибо :)

karl 29.05.2019 11:27

Другие вопросы по теме