End*_*der 9 mysql sql aggregate-functions
我只是学习MySQL - 有没有办法组合(或嵌套)聚合函数?
给出一个查询:
SELECT user, count(answer) FROM surveyValues WHERE study='a1' GROUP BY user;
Run Code Online (Sandbox Code Playgroud)
这将为我提供每个用户回答的问题数量.我真正想要的是每个用户回答的平均问题数量......例如:
SELECT avg(count(answer)) FROM surveyValues WHERE study='a1';
Run Code Online (Sandbox Code Playgroud)
计算此统计数据的正确方法是什么?
如果这是可能的,那么有没有办法可以为每个问题打破这个统计数据?(用户可以多次回答同一个问题).就像是:
SELECT avg(count(answer)) FROM surveyValues WHERE study='a1' GROUP BY question;
Run Code Online (Sandbox Code Playgroud)
OMG*_*ies 12
你必须使用子查询:
SELECT x.user,
AVG(x.cnt)
FROM (SELECT user, COUNT(answer) AS cnt
FROM surveyValues
WHERE study='a1'
GROUP BY user) x
GROUP BY x.user
Run Code Online (Sandbox Code Playgroud)
您无法使用其他聚合包装聚合.如果MySQL支持分析/排名/窗口函数,您可以将分析包装在聚合中...
| 归档时间: |
|
| 查看次数: |
15852 次 |
| 最近记录: |