【发布时间】:2023-03-17 01:53:01
【问题描述】:
select avg(select count(aid)
from athlete
group by codepays)
我收到“多行错误”。 如何从我的第一个选择中获取结果的平均值?
【问题讨论】:
select avg(select count(aid)
from athlete
group by codepays)
我收到“多行错误”。 如何从我的第一个选择中获取结果的平均值?
【问题讨论】:
您需要使用表表达式(子查询)。
例如:
select avg(cnt)
from (
select count(aid) as cnt
from athlete
group by codepays
) x
【讨论】:
AVG() 等聚合函数的参数是列或标量表达式,而不是查询。您的语法理论上可能有用,但它不是 SQL 标准的一部分(或它的扩展)。
您可以使用除法来做到这一点:
select count(aid) / count(distinct codepay)
from athlete;
不需要子查询。
(尽管如果codepay 实际上可以是NULL,则需要调整算术。)
【讨论】: