SQL - дважды используя string_agg - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь написать две строки из выбора значения из столбца в нескольких строках. Я получаю строку назад, но результат не верный, возвращаемая строка повторяет имя specialism_name, а qualification_name повторяется столько раз, сколько существует квалификаций для работника. Что мне нужно сделать, чтобы настроить этот оператор SQL, чтобы он записывал имена только один раз. Я думал, что DISTINCT может работать.

string_agg(specialism_name, ', ' ORDER BY  sp.specialism_name ASC) as worker_specialisms, 
string_agg(qualification_name, ', ' order by q.qualification_name asc) as worker_qualifications

from worker w
inner join users u using (worker_id)
inner join occupation o using (occupation_id)
inner join worker_specialism ws using (worker_id)
inner join specialism sp on ws.specialism_id = sp.specialism_id 
inner join worker_qualification wq using (worker_id)
inner join qualification q on wq.qualification_id = q.qualification_id

where 1 = 1 GROUP BY w.worker_id, u.user_id, o.occupation_id ORDER BY first_name ASC 
...