首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将重复的行移到列中,使每一行都是唯一的

如何将重复的行移到列中,使每一行都是唯一的
EN

Stack Overflow用户
提问于 2014-07-17 20:46:32
回答 1查看 69关注 0票数 1

我的工作是处理病人数据。当加入表格以显示哪个临床医生看过病人时,如果病人看了一个以上的临床医生,我会得到多行。我已经使用行号函数来尝试突出显示第二个临床医生。但是,我需要每一行表示一个患者,如果有多个临床医生,则需要其他列来显示临床医生的姓名。

我从我的查询中输出了以下数据

代码语言:javascript
运行
复制
patient Clinician seen  Clinician number  
1       joe                  1  
2       dan                  1  
2       peter                2  
3       sandra               1  
4       andrea               1  
4       steve                2  
5       helen                1  

我需要输出为:

代码语言:javascript
运行
复制
patient Clinician seen 1    person seen 2  
1   joe                     NULL  
2   dan                     peter  
3   sandra                  NULL  
4   andrea                  steve  
5   helen                   NULL  

下面是我的问题:

代码语言:javascript
运行
复制
SELECT

patient,  
Clinician_seen,  
,ROW_NUMBER ( ) OVER(PARTITION BY patient ORDER BY Clinician_seen asc )

FROM
patients  
clinicians on patients.patietn_id = clinicians.patietn_id 
EN

回答 1

Stack Overflow用户

发布于 2014-07-17 20:56:23

您可以对此使用条件聚合:

代码语言:javascript
运行
复制
SELECT patient,
       MAX(case when cnum = 1 then Clinician_seen end) as Clinician1,
       MAX(case when cnum = 2 then Clinician_seen end) as Clinician2
FROM (SELECT p.patient, c.Clinician_seen,  
             ROW_NUMBER ( ) OVER (PARTITION BY p.patient ORDER BY c.Clinician_seen asc ) as cnum
      FROM patients p JOIN
           clinicians c
           on p.patient_id = c.patient_id 
     ) t
GROUP BY patient;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24804020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档