具有一列的选择列具有不同的值但可重复

时间:2014-11-28 13:05:39

标签: mysql group-by rows

我不会说英语,但我会尝试解释我的问题:

我有这个。

col | col 1 | col 2 | col 3
kar   a        a2      D
kar   a        a2      E
kar   a        a2      D
fer   b        b2      F
fer   b        b2      E
fer   b        b2      D
jose  a        a2      G
jose  a        a2      G

我需要得到这样的结果:只有在col3中有多个值的人并计算他们有多少不同的值,如下所示:

col | col 1 | col 2 | count
 kar     a       a2     2
 fer     b       b2     3

Jose不在结果中,因为他在col3列中有一个unic值。

我有这个问题,但我不知道计数和分组的行数

SELECT t.*
FROM tablafinal t join
     (SELECT COL1, COL2
      FROM tablafinal
      GROUP BY COL1, COL2
      HAVING COUNT(distinct COL3) > 1
     ) cols
     on t.COL1 = cols.COL1 and t.COL2 = cols.COL2

结果:

col | col 1 | col 2 | col 3
kar   a        a2      D
kar   a        a2      E
kar   a        a2      D
fer   b        b2      F
fer   b        b2      E
fer   b        b2      D

以第3列为第3组,对于" kar"和" fer"在一行中:c

我正在使用MYSQL

感谢

1 个答案:

答案 0 :(得分:1)

尝试:

SELECT col, col1, col2, count(distinct col3) as counts
FROM mytable
GROUP BY col, col1, col2
HAVING count(distinct col3) > 1