sql - SQLite如何查询不同测试结果的相同ID?

标签 sql sqlite

我的目标是写一段代码来找到具有不同测试结果的相同ID。表 1 包含很多行,但我添加了这 4 行作为示例。我知道我的代码不正确,但获取此特定信息的正确方法是什么? (参见下面的预期目标) 我希望我的问题是有道理的,但如果不清楚,请随时发表评论。

表 1:

<表类="s-表"> <头> 身份证 测试结果 诊断 <正文> 2 正面 X78 2 否定 U98 3 正面 U98 4 负面的 Y55

期望的目标:

<表类="s-表"> <头> 身份证 测试结果 诊断 <正文> 2 正面 X78 2 否定 U98

代码:

SELECT *
FROM table1
WHERE ID <> ' ' AND TEST_RESULT= NEGATIVE AND TEST_RESULT = POSITIVE;

最佳答案

您将需要一个子查询来计算每个 ID 有多少个POSITIVENEGATIVE 结果,然后在您的过滤中使用它的结果:

SELECT *
FROM Table1
WHERE id IN (
              SELECT ID
              FROM Table1
              GROUP BY ID
              HAVING SUM(CASE WHEN test_result = 'POSITIVE' THEN 1 ELSE 0 END) > 0
                     AND  
                     SUM(CASE WHEN test_result = 'NEGATIVE' THEN 1 ELSE 0 END) > 0   
             ); 

FIDDLE DEMO

关于sql - SQLite如何查询不同测试结果的相同ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73561514/

相关文章:

mysql - 如何用 MySQL 中另一个字符串和一个字段的串联替换任何字符串

sql - 识别数据库中的空白表并从另一个数据库中的另一个表插入数据

sql - 从另一个表插入数百万行

java - 使用 MapSqlParameterSource 在 Spring MVC 中进行 Order by 子句查询

php - SQL 查询只检索一行

database - SQLite中获取排他锁的函数

android - 将图像路径保存到数据库并可绘制到内部存储

java - Clojure 中的 NullPointerException

java - 为什么我的 android Activity 执行如此缓慢?

python - 创建 super 用户 django.db.utils.IntegrityError : NOT NULL constraint failed