由于收到了针对特定候选人的反馈数量,我有一个重复值的数据集。
共有3种反馈类型:“安全”,“其他”和“社交”。
候选人可以拥有多个这些反馈。并且此反馈类型名称必须通过将Org和orgtype表连接在一起来获取。但这给了我结果集中重复的值。
几列查询如下:
select
c.id as [Candidate ID]
,c.name as [Candidate Name]
,cf.status as [feedback status]
,e.name as [Feedback Type]
from
Candidates c
left join
Candidate_Feedback CF ON CF.CandidateId = c.ID
left join
Organizations d on CF.OrgId = d.ID
left join
OrganizationTypes e on d.OrganizationTypeId = e.Id
如何在每个候选人只需要一行的地方以及列中的反馈类型而不是行中旋转数据?(例如col1-Feedback_social,Col2-Feedback_Other,col3-Feedback_Security,col4-'N / A'(如果没有反馈)
由于查询中的其他情况,我需要为每位候选人提供这3列。
您可以使用条件聚合,例如:
select
c.id as [Candidate ID],
c.name as [Candidate Name]
max(case when e.name = 'Social' then cf.status end) [Feedback Social],
max(case when e.name = 'Other' then cf.status end) [Feedback Other],
max(case when e.name = 'Security' then cf.status end) [Feedback Security]
from Candidates c
left join Candidate_Feedback CF ON CF.CandidateId = c.ID
left join Organizations d on CF.OrgId = d.ID
left join OrganizationTypes e on d.OrganizationTypeId = e.Id
group by c.id, c.name
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。