我不确定我是否使用了正确的标题,如果我对该主题有更多的了解,我会编辑问题。
现在我尝试测试MySQL的AVG()
函数并尝试查询:
SELECT AVG(1,2,3)
我希望这会给我2
作为结果。但我收到错误,因为AVG()
打算将列名称作为单个参数接收。我无法想象除了这个非常人为的例子之外我还需要这个东西,但我相信如果我能够执行这样的查询,我会更好地理解SQL语言。
答案 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。你应该检查一下。
希望有所帮助。