SQL 用于在多个组中查找唯一值

SQL for finding unique values in multiply groups

卡在数据块应用程序的 SQL 问题上,我试图识别一列中的哪些唯一值属于两个或多个组。例如:

COL_A  COL_B
 123     A
 234     B
 345     B
 123     B
 456     A
 567     C
 345     C
 345     A

我寻找的结果会告诉我在 A 组和 B 组中都找到了唯一值 123,在 B、C 和 A 组中找到了 345。类似...

123   A
123   B
345   B
345   C
345   A

或者有更好的方法吗?

您可以通过以下操作找到具有多个 col_bcol_a

select col_a
from t
group by col_a
having min(col_b) <> max(col_b);

然后您可以将其合并到查询中以获取原始数据:

select t.*
from t join
     (select col_a
      from t
      group by col_a
      having min(col_b) <> max(col_b)
     ) tt
     on t.col_a = tt.col_a;

这应该有效:

SELECT a.* FROM myTable a
JOIN(
    SELECT COL_A, COUNT(COL_B)
    FROM myTable
    GROUP BY COL_A
    HAVING COUNT(COL_B) > 1
) b on a.COL_A = b.COL_A
ORDER BY COL_A, COL_B