需要以下 SQL 查询的帮助。
问题陈述 - 显示入院时的患者 ID、主要诊断。查找因同一主要诊断而多次入院的患者
表格 - 招生
表标题 - 患者 ID、入院日期、出院日期、主要_诊断、次要_诊断
我的代码-
SELECT Distinct ad1.patient_id, ad1.primary_diagnosis
FROM admissions ad1 join admissions ad2
ON ad1.patient_id = ad2.patient_id AND
ad1.primary_diagnosis = ad2.primary_diagnosis
Group by ad1.patient_id
having count(ad1.patient_id)>1;
我正在网上解决问题,上面的代码没有给我想要的输出。
门户网站没有说明代码有什么问题。
如果我在逻辑上犯了错误,请纠正我。
SELECT
ad.patient_id,
ad.primary_diagnosis
FROM
admissions ad
GROUP BY
ad.patient_id,
ad.primary_diagnosis
HAVING
COUNT(DISTINCT ad.admission_date) > 1
当您已经有 Group by 和having 语句时,似乎不需要编写 self join 语句。就像前面的答案所说,请确保按患者 ID 和主要诊断进行分组,因为您需要知道同一名患者被诊断出什么疾病(主要诊断)。
SELECT
patient_id,
primary_diagnosis
FROM admissions
GROUP BY
patient_id,
primary_diagnosis
HAVING COUNT(*) > 1;
这个查询应该有效
select
patient_id,
primary_diagnosis
from admissions
group by patient_id, primary_diagnosis
having count (primary_diagnosis)>1
选择 患者 ID, 诊断 来自招生 通过...分组 患者 ID, 诊断 计数 (*) > 1