2016-12-06 155 views
0

我正在使用MySQL,我需要创建必须使用许多聚合函数的长命令。这是我的代码...函数集合中的函数聚合

select count(field) from table group by field order by count(field) desc 

我需要SUM或AVG这,我还不知道,但它是无关的。当我试图这样做:

select avg(count(field)) from table group by field order by count(field) desc 

我得到错误。是在一个查询中使用这些函数的很多方法,还是可能将其切片?

错误是:#1111 - 无效使用组功能的

回答

1

一种方法是一个子查询:

select avg(cnt) 
from (select count(field) as cnt 
     from table 
     group by field 
    ) t; 

一个更简单的方法是只直接做计算:

select count(*)/count(distinct field) 
from table; 
+0

你错过了窗口功能版本! :d – Hogan

+0

最后使用t,是否有一些技巧用于无误地运行此查询? – Stwosch