我有一个ID有三个标志的场景。 例如
ID flag1 flag2 flag3
1 0 1 0
2 1 0 0
1 1 0 0
1 0 0 1
2 0 1 0
3 0 1 0
4 1 0 0
现在我想要仅具有flag2 = 1的记录.I.e ID = 3具有flag2 = 1,其中ID = 1且2具有flag1和flag3 = 1以及flag2 = 1。我不想要ID = 1和2。 我不能使ID唯一或主要。我试着用case语句但是我在某种程度上错过了基本的逻辑。 我们可以用CTE做到这一点,但我想在三种不同的情况下重复这一点(我希望重复ID = 4的相同逻辑,其中Flag1 = 1)。
答案 0 :(得分:0)
您可以使用group by
和having
select id
from table t
group by id
having min(flag2) = max(flag2) and min(flag2) = 1;