【发布时间】:2015-02-28 21:57:29
【问题描述】:
我正在使用 oracle 开发一个医学数据库,我试图在其中找到随机匹配的样本。我创建了一个包含所有患者的表格,然后创建了一个包含我正在寻找的疾病的患者的表格。现在我想知道是否可以根据性别和出生年份进行比较,将 3 名随机选择的患者与我的目标组完全匹配(因此目标组中的每个患者从表中随机选择 3 名患者)。
SELECT A.PATIENTID
FROM ALLPATIENTS A,
DIAGNOSES B
WHERE A.YEAROFBIRTH = B.YEAROFBIRTH
AND A.GENDER = B.GENDER
AND A.PATIENTID NOT IN (SELECT PATIENTID
FROM DIAGNOSES);
我的查询向我显示了在诊断组中匹配的所有患者。这意味着来自诊断组的患者比例过高,例如出生年份更常见。这就是为什么我希望我的诊断组中的每个患者只需要 3 个样本。我希望你能明白我在说什么
非常感谢
【问题讨论】:
-
最后一个 where 条件让我很困惑,“A.PATIENTID NOT IN (select PATIENTID from DIAGNOSES)”是什么意思?
-
@jarlh 。 . . S/he 表示治疗组 (
diagnoses) 中的患者不能在任何队列中。即diagnoses与allpatients是分开的,但allpatients拥有所有人。 -
感谢您的解释! (估计过完年还是很累……)