来自表中多个记录的一条记录

时间:2015-09-05 15:28:42

标签: sql

我有一个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)。

1 个答案:

答案 0 :(得分:0)

您可以使用group byhaving

获取具有此条件的ID
select id
from table t
group by id
having min(flag2) = max(flag2) and min(flag2) = 1;