Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 仅当有两行以上类似行时才分组?_Mysql_Sql_Aggregate Functions - Fatal编程技术网

Mysql 仅当有两行以上类似行时才分组?

Mysql 仅当有两行以上类似行时才分组?,mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,我只想在有2个以上RWO匹配规则时对项目进行分组。如何做到这一点 例如:按列分组 应返回: Col | count(*) --------------- A 2 A 2 B 3 它只显示一次B,因为有3个以上的结果。因为MySQL没有COUNT OVER,所以当计数小于3时,需要一个内联视图来获取计数。那么它只是一个普通计数查询的并集 SELECT counts.col, counts.k FROM test INNER JOIN

我只想在有2个以上RWO匹配规则时对项目进行分组。如何做到这一点

例如:按列分组

应返回:

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

它只显示一次B,因为有3个以上的结果。

因为MySQL没有COUNT OVER,所以当计数小于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 

为什么A出现两次而B只出现一次?@ajreal你读过这个问题吗?我只想在有两个以上的项目符合规则时对项目进行分组。我没有尝试任何操作。我知道如何使用一个自连接加上另一个查询来实现它,但是查询会变得太长,并且嵌套在其他查询中already@MБΓΓББLL-示例输出没有意义,我的意思是已经采用了分组格式。为什么要在输出中显示两次?
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