SQL:检查每个id的result = number

时间:2016-09-05 07:52:43

标签: sql

我有这种结构

ID    STATUS
1     FIRSTSTAT
2     FIRSTSTAT
3     FIRSTSTAT
1     SECSTAT
3     SECSTAT
3     THIRDSTAT
3     FOURTHSTAT
3     FIFTHSTAT

我希望得到3,因为他拥有以下所有状态(FIRSTSTAT,SECSTAT,THIRDSTAT)。你知道我该怎么做吗?

应该通过明确给出状态来完成,因为存在其他状态,因此SELECT FROM WHERE = 'THIRDSTAT'不正常,因为它应该具有所有三种状态,而不仅仅是其中一种状态。

所以我想应该完成计算SUM之类的东西。

我尝试了以下但当然,它不起作用:

SELECT
FROM
WHERE
AND
AND

1 个答案:

答案 0 :(得分:3)

如果已知不同状态值的数量始终为3:

select id
from tablename
where status in ('FIRSTSTAT', 'SECSTAT', 'THIRDSTAT')
group by id
having count(distinct status) = 3