[英]Distinct Count from a Many Table in a One-To-Many Relationship
我是 SQL 的新手,所以如果这个查询是基本的,我深表歉意。
我有一个患者 data.table,它具有单独出现的字段,即 chart_number、Name,具有唯一标识符 zzabstractlink。 我有另一个程序表,每位患者最多可能有 20 个长格式数据。
我还链接到另一个多次出现的表,诊断,所以我应该创建 3 个不同的数据集,其中包含所有字段和派生字段(如上面的剖腹产),然后通过 union 语句将它们链接在一起吗? 还是任何程序的解决方案都适用于诊断?
非常感谢所有帮助,谢谢。
注意:对于所提供的代码,这从干预表中提取了一个案例,以获得与干预一样多的记录,而不仅仅是一次,这正是我想要的。
S.
zz抽象链接 | 名称 | 病人服务 | 录取日期 | disch_date |
---|---|---|---|---|
111111 | 史密斯,约翰 | 30 | 2021-09-01 | 2021-09-05 |
222222 | 琼斯,弗兰克 | 30 | 2021-10-01 | 2021-10-15 |
333333 | 格林,乔尼 | 55 | 2021-11-01 | 2021-11-10 |
444444 | 布莱克,米兹 | 51 | 2021-12-01 | 2021-12-03 |
555555 | 卡梅伦,莎莉 | 10 | 2022-01-01 | 2022-05-05 |
zz抽象链接 | Px发生 | Px代码 |
---|---|---|
111111 | 1个 | INV89DA |
111111 | 2个 | ITA35HAJ2 |
111111 | 3个 | ITA80DA |
222222 | 1个 | IAN27JA |
222222 | 2个 | 1BM72LA |
222222 | 3个 | 1FR89WJAK |
333333 | 1个 | 1RM89LA |
333333 | 2个 | 1RF89LA |
444444 | 1个 | 5MD60AA |
zz抽象链接 | Dx发生 | Dx代码 |
---|---|---|
111111 | 1个 | K711 |
111111 | 2个 | R458 |
222222 | 1个 | K358 |
222222 | 2个 | I651 |
333333 | 1个 | N811 |
333333 | 2个 | N816 |
444444 | 1个 | O70101 |
444444 | 2个 | Z3700 |
555555 | 1个 | I500 |
555555 | 2个 | E785 |
555555 | 3个 | R64 |
[期望的结果]
zz抽象链接 | cs(来自 px 的派生字段) | prev_cs(来自 dx 的派生字段) |
---|---|---|
111111 | 0 | 0 |
222222 | 0 | 0 |
333333 | 0 | 0 |
444444 | 1个 | 1个 |
555555 | 0 | 0 |
我不明白你是如何获得 prev_cs 值的。 但是对于 cs 值,您需要一个EXISTS
或IN
子句:
select
zzabstractlink,
zzabstractlink in (select zzabstractlink from procedures where pxcode like '5MD60%')
as cs
from patients
order by zzabstractlink;
在 MySQL 中,true = 1,false = 0。因此,如果找到匹配行, IN
或EXISTS
子句将为 1,否则为 0。
演示: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=00501fd3d98f63a35ad2c4cb527c7f8e
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.