[英]Merge rows and concatenate based on multiple conditions
原始数据
命令 | 服务 | ID | 日期 | State | 姓名 | 结果 |
---|---|---|---|---|---|---|
7 | 命脉 | 12345 | 10/2/2019 | 阿拉巴马州 | 收缩 | 115 |
39 | 命脉 | 12345 | 10/2/2019 | 阿拉巴马州 | 体重指数 | 27.5 |
62 | 命脉 | 12345 | 10/2/2019 | 阿拉巴马州 | 舒张期 | 64 |
519 | 命脉 | 12345 | 10/2/2019 | 阿拉巴马州 | 舒张期 | 70 |
114 | 命脉 | 12345 | 11/5/2019 | 阿拉巴马州 | 收缩 | 111 |
442 | 命脉 | 12345 | 11/5/2019 | 阿拉巴马州 | 体重指数 | 28 |
10 | 命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 体重指数 | 29 |
89 | 命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 收缩 | 100 |
90后 | 命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 舒张期 | 62 |
529 | 命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 舒张期 | 90后 |
417 | 命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 收缩 | 99 |
77 | 命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 收缩 | 110 |
78 | 命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 舒张期 | NULL |
343 | 命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 体重指数 | 23 |
120 | 命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 舒张期 | NULL |
321 | 命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 收缩 | 106 |
39 | 命脉 | 12345 | 9/29/2020 | 阿拉巴马州 | 舒张期 | 82 |
97 | 命脉 | 12345 | 9/29/2020 | 阿拉巴马州 | 收缩 | 120 |
815 | 命脉 | 12345 | 9/29/2020 | 阿拉巴马州 | 体重指数 | 22 |
19 | 命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 收缩 | 108 |
20 | 命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 舒张期 | 59 |
983 | 命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 体重指数 | 24 |
984 | 命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 收缩 | 133 |
210 | 命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 舒张期 | 68 |
期望的结果
服务 | ID | 日期 | State | 姓名 | 结果 |
---|---|---|---|---|---|
命脉 | 12345 | 10/2/2019 | 阿拉巴马州 | 血压 | 115/70 |
命脉 | 12345 | 10/2/2019 | 阿拉巴马州 | 体重指数 | 27.5 |
命脉 | 12345 | 11/5/2019 | 阿拉巴马州 | 收缩 | 111 |
命脉 | 12345 | 11/5/2019 | 阿拉巴马州 | 体重指数 | 28 |
命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 体重指数 | 29 |
命脉 | 12345 | 12/19/2019 | 阿拉巴马州 | 血压 | 100/90 |
命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 收缩 | 110 |
命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 舒张期 | NULL |
命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 体重指数 | 23 |
命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 舒张期 | NULL |
命脉 | 12345 | 2020 年 4 月 7 日 | 阿拉巴马州 | 收缩 | 106 |
命脉 | 12345 | 9/29/2020 | 阿拉巴马州 | 体重指数 | 22 |
命脉 | 12345 | 9/29/2020 | 阿拉巴马州 | 血压 | 120/82 |
命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 体重指数 | 24 |
命脉 | 12345 | 2/2/2021 | 阿拉巴马州 | 血压 | 133/68 |
免责声明 - 这只是属于 ID 12345 的数据子集,还有数千个。
我想要一个使用 sql 服务器返回结果所需图片的查询,其中:
我已使用此链接作为参考来提供帮助,但我的建议很短。 不确定如何将上述条件包含在结果中。
With test as
(
select service,ID, Date, state, Name, results, case when name = 'Systole' or t.BiometricName= 'Diastole'then 'Blood Pressure' else Name end [New_Name]
from mytable t )
SELECT DIStiNCT service, ID, Date, state, Name, results, new_name
FROM test
抱歉,这个 markdown 不是很好(我会尝试编辑它),我希望我不会把它弄得太臃肿。
使用 SQL 服务器 2014 - 12.0.5223.6
提前致谢
一点点巧妙的聚合应该可以解决问题。
select
service,
ID,
Date,
state,
case when min(name) = 'Diastole' and max(name) = 'Systole' then 'Blood Pressure' else min(Name) end AS [New_Name],
case when min(name) = 'Diastole' and max(name) = 'Systole' then
concat(
min(case when name = 'Diastole' then results end),
'/',
min(case when name = 'Systole' then results end)
)
else min(results) end AS results
from mytable t
where results is not null
group by
service,
ID,
Date,
state,
case when name not in ('Systole', 'Diastole') then name end;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.