2016-12-06 207 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