在列b中查找A列中

时间:2017-01-05 08:21:38

标签: sql oracle duplicates

我的表格如下:

Sr_No   C_A  C_B
-------------------
1       100  A
2       100  A
3       100  B
4       101  A
5       102  A
6       102  B
7       103  A
8       103  A
9       103  B

我希望选择查询到达

C_A 
----
100 
103 

我想知道C_B列中有多少记录在C_B列中有重复值。

2 个答案:

答案 0 :(得分:5)

下面的查询会针对每个C_A组检查不同C_B值的数量是否小于值的总数。这种情况意味着所有C_B值对于给定的C_A组都不是唯一的,并且存在重复值。

SELECT C_A
FROM yourTable
GROUP BY C_A
HAVING COUNT(DISTINCT C_B) < COUNT(*)

答案 1 :(得分:1)

如果我理解得很好,你可能需要:

select distinct C_A
from 
    (select C_A, C_B, count(1) over ( partition by C_A, C_B) as cnt
     from test
    )
where cnt > 1

嵌套查询计算C_AC_B中每对值的重复项数量,而外部查询只是过滤此结果以仅获得具有重复项的夫妻