SQL选择某些属性相同的组

时间:2017-07-20 12:20:30

标签: sql

假设我有一张这样的表

A B C
-----
1 a 12
2 a 23
3 b 43
4 c 25
5 c 44
6 d 34

如何只选择B在另一行中存在的行?

结果将是:

A B C
-----
1 a 12
2 a 23
4 c 25
5 c 44

2 个答案:

答案 0 :(得分:3)

我不确定你的期望是什么,但我不知道B& d

我们可以像这样实现

Select T.A,T.B,T.C from  Table T
INNER JOIN (
SELECT  B FROM Table
groUP by b
having count(B) > 1 )TT
ON T.B = TT.B

答案 1 :(得分:1)

只需使用exists

select t.*
from t
where exists (select 1
              from t t2
              where t2.b = t.b and t2.a <> t.a
             );

索引为t(b, a),这可能是最快的方法。