SQL子查询对菜鸟的帮助

时间:2018-11-06 19:20:36

标签: sql amazon-redshift

我从事招聘工作,想获得发布到多个办公室的职位列表以及每个职位的职位名称。

我从下面的查询开始,以确定具有多个办公室的职位。对于仅显示具有多个办公室的职位,我下一步要显示office.name的步骤是什么?如果我每项工作能获得一份记录并且将办公室名称填写在各列中,那么将是一个好处。我正在使用连接到Amazon Redshift的SQL Workbench。非常感谢!

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 :(得分:1)

到目前为止,您的查询看起来不错,只是缺少办公室名称?我相信您可以通过添加listagg函数来获得以逗号分隔的办公室列表。像select jobs_offices.job_id, listagg(offices.name, ', ') from ...

Redshift docs

答案 1 :(得分:0)

您可以使用相关的子查询

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 
                    )