函数聚合中的函数聚合

时间:2016-12-06 16:52:26

标签: mysql sql

我正在使用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 个答案:

答案 0 :(得分:1)

一种方法是子查询:

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

更简单的方法是直接进行计算:

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