2012-03-24 61 views
-1

我想只在存在多于两个rwos匹配规则时才能分组项目。如何才能做到这一点?仅当有多于2个相似行时才进行组合?

E.G:(由Col分组)

Col 
---- 
A 
A 
B 
B 
B 

应返回:

Col | count(*) 
--------------- 
A  2 
A  2 
B  3 

它只有一次显示乙因为有3分以上的结果。

+1

为什么A出现两次而B只出现一次? – ajreal 2012-03-24 05:18:19

+0

@ajreal你读过这个问题了吗? _“我想只在有超过2项符合规则的项目时分组。”_ – 2012-03-24 05:18:50

+0

我还没有尝试过任何东西。我知道如何做到这一点与自我加入加上另一个查询,但查询会变得太长,它已经嵌套在其他查询已经 – lisovaccaro 2012-03-24 05:18:51

回答

2

由于MySQL没有计数结束,你需要一个内嵌视图来获取用于计数,当计数小于3,那么它只是一个工会的正常计数查询

SELECT counts.col, 
     counts.k 
FROM test 
     INNER JOIN (SELECT col, 
          COUNT(col) k 
        FROM test 
        GROUP BY col 
        having count(col) < 3) counts 
     ON test.col = counts.col 

UNION ALL 
SELECT col, 
     COUNT(col) k 
FROM test 
GROUP BY col 
HAVING COUNT(col) > 2 

See it working here

相关问题