根据组和计数的结果集过滤数据

时间:2017-12-12 02:50:47

标签: sql database oracle group-by count

我有下表

Col1    Col2    Col3
A1      B1      C1
A1      B1      C2
A1      B2      C1
A1      B2      C2
A1      B2      C3
A2      B1      C1
A2      B1      C2
A2      B2      C1
A2      B2      C2

从这张表中我想要来自Col1的所有唯一记录,对于col1和col2的组合,在Col1中对于相同的值有不同的计数。唯一可能的答案是上表中的A1。

以下查询给出了每个col1和col2的计数。

select col1, col2, count(*) from table
group by col1, col2;

Col1    Col2    Count
A1      B1      2
A1      B2      3
A2      B1      2
A2      B2      2

从上面的查询中我可以看到A1有两个不同计数的记录。如何在单个查询中返回A1?

1 个答案:

答案 0 :(得分:0)

您可以使用其他级别的聚合:

select col1
from (select col1, col2, count(*) as cnt
      from table
      group by col1, col2
     ) t
group by col1
having min(cnt) <> max(cnt);