gpt4 book ai didi

sql - 我将如何编写此 SQL 查询?

转载 作者:行者123 更新时间:2023-11-29 14:12:52 25 4
gpt4 key购买 nike

我有以下表格:

PERSON_T              DISEASE_T               DRUG_T
========= ========== ========
PERSON_ID DISEASE_ID DRUG_ID
GENDER PERSON_ID PERSON_ID
NAME DISEASE_START_DATE DRUG_START_DATE
DISEASE_END_DATE DRUG_END_DATE

我想编写一个查询,它接受疾病 ID 的输入并为数据库中的每个人返回一行,其中一列是性别,一列是他们是否曾经患过这种疾病,还有一列对于每种药物,具体说明他们在感染疾病之前是否服用了该药物。 IE。 true 表示 drug_start_date < disease_start_date。 False 表示 drug_start_date>disease_start_date 或此人从未服用过该特定药物。

我们目前从数据库中提取所有数据,并使用 Java 创建一个包含所有这些值的二维数组。我们正在研究将此逻辑移至数据库中。是否可以创建一个查询来返回我想要的结果集,或者我是否必须创建一个存储过程?我们使用的是 Postgres,但我假设另一个数据库的 SQL 答案很容易转换为 Postgres。

最佳答案

根据提供的信息:

   SELECT p.name,
p.gender,
CASE WHEN d.disease_id IS NULL THEN 'N' ELSE 'Y' END AS had_disease,
dt.drug_id
FROM PERSON p
LEFT JOIN DISEASE d ON d.person_id = p.person_id
AND d.disease_id = ?
LEFT JOIN DRUG_T dt ON dt.person_id = p.person_id
AND dt.drug_start_date < d.disease_start_date

..但是除了 drug_id 列之外,会有很多行看起来重复。

关于sql - 我将如何编写此 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com