sql - 我想在不使用 DISTINCT 的情况下每个 subject_id 只显示一行。不知道该怎么做
问题描述
数据库的输出我正在处理大量数据,因此 DISTINCT 冻结了数据库
我已经在 pgAdmin 上尝试过 DISTINCT,到目前为止还没有运气。
SELECT p.subject_id,
p.gender,
p.dob,
d.icd9_code,
pro.seq_num,
pro.icd9_code,
inpc.itemid inputevents,
inp.itemid inputevents_mv,
lab.itemid labevents,
outp.itemid outputevents
FROM mimiciii.patients p
INNER JOIN mimiciii.diagnoses_icd d
ON p.subject_id = d.subject_id
INNER JOIN mimiciii.procedures_icd pro
ON p.subject_id = pro.subject_id
INNER JOIN mimiciii.labevents lab
ON p.subject_id = lab.subject_id
INNER JOIN mimiciii.inputevents_cv inpc
ON p.subject_id = inpc.subject_id
INNER JOIN mimiciii.inputevents_mv inp
ON p.subject_id = inp.subject_id
INNER JOIN mimiciii.outputevents outp
ON p.subject_id = outp.subject_id
WHERE d.icd9_code = '4299'
我不断收到 subject_id 的重复值。
解决方案
输出是正确的,因为对于相同的“subject_id”,您有许多“labevents”。
如果你想得到所有这些数据,你总是会得到多行。
如果您只需要“患者”数据,则可以使用子查询(例如 EXISTS)来获取正确的过滤器。
有的这样...
SELECT [p...] from patients p where exists (select 1 from ... where p.subject_id=d.subject_id )
=]
推荐阅读
- java - 如何仅针对特定约束验证 DTO 而忽略另一个?
- ibm-cloud - 仅使用 Rest API 在 IBM Cloud 中部署应用程序
- java - 如何从不断变化的变量中获取价值
- intellij-idea - 如何更改左侧区域的背景颜色(不是编辑器,这很容易!)
- typescript - 从模板中排除属性
- ios - Swift:在只下载一次的同时使用多个托管 JSON 文件内容的最佳方式
- ms-access - 如何使用 sql 管理工具或任何其他工具连接到 ms access 数据库?
- python - 熊猫不会在空列上合并
- python - 生成基于文本的直方图
- properties - Kotlin - 可空属性默认为空值