Справка по подзапросу SQL для нуба - PullRequest
0 голосов
/ 06 ноября 2018

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

Я начал с запроса ниже, чтобы определить задания с несколькими офисами. Каков мой следующий шаг для отображения офисов.имя только для работ с несколькими офисами? Бонус, если я могу получить одну запись за работу и заполнить названия офисов в столбцах. Я использую SQL Workbench, подключенный к Amazon Redshift. Большое спасибо!

select jobs_offices.job_id, count(offices.id)
from jobs_offices join offices on jobs_offices.office_id = offices.id
group by jobs_offices.job_id
having count(offices.id) >1
order by count(offices.id) DESC

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

вы можете использовать коррелированный подзапрос

select t.* from offices t
      where exists ( select 1 from jobs_offices t1 where t1.office_id=t.id
                        group by t1.job_id
                       having count(*) >1 
                    )
0 голосов
/ 06 ноября 2018

Ваш запрос пока выглядит хорошо, просто не хватает названия офиса? Я полагаю, что вы можете получить список отделенных запятыми офисов, добавив функцию listagg . Что-то вроде select jobs_offices.job_id, listagg(offices.name, ', ') from ...

Документы Redshift

...