繁体   English   中英

比较同一张表中的两行SQL

[英]Comparing two rows in the same table SQL

我们在解决 SQL 课程中的一部分练习时遇到问题,这是数据集的一部分: 在此处输入图片说明

我们正在寻找的查询应该是:找到可以用氢化可的松治疗但不能用依那西普治疗的疾病。

有任何想法吗?

按疾病名称分组并在 HAVING 子句中设置条件:

select DiseaseName
from tablename
where DrugName in ('hydrocortisone', 'etanercept') 
group by DiseaseName
having count(case when DrugName = 'etanercept' then 1 end) = 0

在 Mysql 中,不同之处在于having子句:

having sum(DrugName = 'etanercept') = 0

在 Potgresql 中:

having sum((DrugName = 'etanercept')::int) = 0

NOT EXISTS 的另一种方式:

select DISTINCT t.DiseaseName
from tablename t
where t.DrugName = 'hydrocortisone'
and not exists (select 1 from tablename where DiseaseName = t.DiseaseName and DrugName = 'etanercept')

您可以使用以下查询:

SELECT "diseasename" FROM TABLE1
GROUP BY  "diseasename"
HAVING MIN("DRUGNAME") = MAX("DRUGNAME") AND MAX("DRUGNAME") = 'hydrocortisone';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM