选择列的唯一条目,并按另一个条目的唯一条目对其进行过滤

时间:2014-02-16 17:20:39

标签: mysql sql

我有以下假设表:

col_1 | col_2
a      1
b      1
c      1
d      2
e      2
a      3
b      3
c      3

我想要的是第1列(5 - a,b,c,d,e)中唯一条目的数量,这些条目按第2列的唯一条目过滤。输出应为2,因为

col_1 | col_2
a      1,3
b      1,3
c      1,3
d      2
e      2

col_1 | col_2
a,b,c   1,3
d,e     2

我没有输入任何值。我只想要输出行数。我能做什么?我尝试了DISTINCT和GROUP BY,但没有成功。

谢谢!

1 个答案:

答案 0 :(得分:1)

group_concat具有您需要的基本功能,并且还支持distinct - ness。您只需要将几个子查询组合在一起:

SELECT   GROUP_CONCAT(DISTINCT col_1) AS col_1, col_2
FROM     (SElECT   col_1, GROUP_CONCAT(DISTINCT col2) AS col_2
          FROM     my_table
          GROUP BY col_1) t
GROUP BY col2