我的目标是写一段代码来找到具有不同测试结果的相同ID。表 1 包含很多行,但我添加了这 4 行作为示例。我知道我的代码不正确,但获取此特定信息的正确方法是什么? (参见下面的预期目标) 我希望我的问题是有道理的,但如果不清楚,请随时发表评论。
表 1:
期望的目标:
代码:
SELECT *
FROM table1
WHERE ID <> ' ' AND TEST_RESULT= NEGATIVE AND TEST_RESULT = POSITIVE;
最佳答案
您将需要一个子查询来计算每个 ID 有多少个POSITIVE
和NEGATIVE
结果,然后在您的过滤中使用它的结果:
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
);
关于sql - SQLite如何查询不同测试结果的相同ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73561514/