Я хотел бы получить строки из этого набора данных, где существует значение T1 / T3, но для соответствующего идентификатора не существует значения T2 / T3.
ID sample1 sample2 value
A_000002 T2 T3 -0.934119
A_000002 T1 T3 -0.866637
A_000029 T2 T3 -1.07677
A_000037 T2 T3 -0.76506
A_000057 T1 T3 -5.34988
Я бы хотел сказать что-то вроде:
SELECT * FROM table
WHERE DISTINCT ID
AND sample_1 == "T1"
AND sample_2 == "T3"
... и вернуть только следующее, потому что для этого идентификатора нет соответствующей строки T2 / T3:
A_000057 T1 T3 -5.34988
Если я использую условия sample_1 и sample_2, я все равно получаю различные значения, потому что он отфильтровывает значения "T2" перед проверкой, является ли идентификатор отличным.
Самое близкое, что я получил, - это сделать 3 таблицы с возможными комбинациями T1 / T2 / T3 и экраном НЕ СУЩЕСТВУЕТ T1T2.ID = T2T3.ID
select * from T1T2
where not exists (select * from T2T3 where T2T3.id = T1T2.id)
and not exists (select * from T1T3 where T1T3._id = T1T2.id)
order by id
Я не уверен, что пока доверяю коду.