这是数据,称之为表T
A B
-- --
1 14
2 15
3 16
4 1
4 3
4 6
4 9
4 12
4 15
我想获得只有一个值且B值为15的A的值。 有两行,其中B = 15但有6行,其中A = 4,只有一行,其中A = 2.
所以正确的SQL应该返回2。
我试过这个,但它返回两行。
select A from T group by A,B having Count(A) = 1 and B = 15
这同样失败了:
select A from T where B = 15 group by A having count( A ) = 1
答案 0 :(得分:2)
试试这个:
select A
from T
group by A
having Count(A) = 1 and Max(B) = 15;
您的问题似乎是您正在按两列进行分组。您只想按A
分组。
不可否认,您的查询有group by A, T
,但我认为这是一个错字,基于所描述的行为。
答案 1 :(得分:1)
您可以在按A分组后检查B的计数。
select A
from T
group by A
having Count(B) = 1 and max(B) = 15