聚合函数的算术加法

时间:2019-05-08 03:48:14

标签: sql

我是sql的新手,想使用sql中的聚合函数执行简单的任务。

select  (current_data + avg(current_data)) 
as "average + current data"
from datasets

但是,聚合函数的算术加法似乎在sql中不起作用。 如何将current_data添加到avg(current_data)的值?

3 个答案:

答案 0 :(得分:1)

为此-

SELECT current_data + 
(
    SELECT avg(current_data) FROM datasets
) AS 'average + current data'
FROM datasets

答案 1 :(得分:0)

为避免计算每一行的平均值,我建议先计算平均值然后再使用它。

DECLARE @avg INT
SET @avg = (SELECT AVG(current_data) FROM dataset)

SELECT current_data + @avg
FROM dataset

答案 2 :(得分:0)

  

我正在尝试为我拥有的所有行执行(current_data + avg(current_data))。例如,如果我有一个数据集,每行包含1到10,则avg(current_data)变为5.5,并想将每行数据(1,2,..... 10)添加到5.5,因此在输出,每行显示(6.5,7.5,... 15.5)

为此,您需要avg()的版本是 window函数,用OVER关键字表示(在许多(但不是全部)数据库中可用):

SELECT current_data + avg(current_data) OVER () AS "average + current_data"
FROM datasets
ORDER BY current_data;

给予

average + current_data
----------------------
6.5                   
7.5                   
8.5                   
9.5                   
10.5                  
11.5                  
12.5                  
13.5                  
14.5                  
15.5