[英]SQL Find id-s where value of column equals a value on specific rows
假设我使用下表:
ID LETTER VALUE
1 A NON-VALID
1 B VALID
1 C VALID
1 D VALID
2 A NON-VALID
2 B VALID
2 C NON-VALID
2 D VALID
所以,我想要的很简单,但是我还没有找到类似的东西或自己弄清楚。
我想使用将要定义的所有字母中的值都设为VALID的ID,例如,如果要在Bs和Cs上使用有效值,则希望我的数据集返回ID 1。
愚蠢的例子:
SELECT ID
FROM table
WHERE VALUE=VALID IN EVERY ROW WHERE LETTER BETWEEN 'B' AND 'C'
您可以执行以下操作:
select id
from t
where letter in ('B', 'C') and value = 'Valid'
group by id
having count(distinct letter) = 2; -- "2" is the number of letters in your list
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.