使用AVG函数计算多个数字的平均值

时间:2014-12-16 11:52:18

标签: mysql sql

我不确定我是否使用了正确的标题,如果我对该主题有更多的了解,我会编辑问题。

现在我尝试测试MySQL的AVG()函数并尝试查询:

SELECT AVG(1,2,3)

我希望这会给我2作为结果。但我收到错误,因为AVG()打算将列名称作为单个参数接收。我无法想象除了这个非常人为的例子之外我还需要这个东西,但我相信如果我能够执行这样的查询,我会更好地理解SQL语言。

2 个答案:

答案 0 :(得分:2)

Avg()是一个聚合函数,因此它在一个 oolumn 值上运行(或者为每一行计算一个表达式)。它不需要多个参数。你只想要:

SELECT (1 + 2 + 3) / 3

与此对比:

SELECT AVG(t.n)
FROM (SELECT 1 as n UNION ALL
      SELECT 2 UNION ALL
      SELECT 3
     ) t

这将三行汇总为一行,计算平均值。

答案 1 :(得分:1)

在你的情况下你可以像这样使用avg

Select avg(data)
From (select 1 as data union 
Select 2 as data union
Select 3 as data) a

Internet上有大量资源用于学习sql。你应该检查一下。

希望有所帮助。