我想做以下事情:

SELECT AVG([1,2,3]);


这当然会返回2。我最接近的是以下内容,虽然不理想,但可以放在一行中:

drop table nums;
create temporary table nums (num int);
insert into nums(num) values(1),(2),(3);
select avg(num) from nums;


如果有办法的话,我认为使用variant()和其他函数也可以做到这一点。

编辑:这个想法是出于好奇,不是我需要解决的实际问题。

最佳答案

AVG只能有1个参数。您需要执行SELECT AVG(num) FROM nums

您也可以执行SELECT SUM(num) / COUNT(num) FROM nums

只是知道,因为您使用整数进行除法,所以它并不精确。

关于mysql - 在MySQL中,有一些方法可以通过数字列表来计算平均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51546780/

10-13 00:52