Sql Server中分组行的平均值

时间:2010-06-23 10:47:50

标签: sql-server average

我有一个Sql Server Table ..它是这样的:

Id ...... Column1 ...... Column2  
````````````````````````````````  
1 ........ 1 ............. 34  
2 ........ 1 ............. 44  
3 ........ 2 ............. 45  
4 ........ 2 ............. 36  
5 ........ 2 ............. 23  
6 ........ 3 ............. 68  
7 ........ 3 ............. 26  

所以,我需要选择Column2的平均值,但是在执行此操作之前选择group1的列 我的意思是,如果我说Avg(Column2)它只返回一行,其中包含所有行的平均值。

我需要的是,首先我需要按列对它们进行分组,以便: column2的平均值,其中column1 = 1
column2的平均值,其中column1 = 2
column2的平均值,其中column1 = 3

所以我希望返回3行,其中包含column1各自值的平均值。我迷失了这个,有任何提示/帮助吗?

ps:我尝试了几个相关的问题,但没有一个帮助/我无法理解。

6 个答案:

答案 0 :(得分:19)

这是你想要的吗?

select column1, avg(column2) from table group by column1

答案 1 :(得分:4)

简单

select AVG(Column2) from table group by Column1

不起作用?

答案 2 :(得分:2)

SELECT column1, AVG(column2) 
  FROM "Insert table name"
GROUP BY column1 

答案 3 :(得分:1)

SELECT Column1, AVG(Column2) FROM test GROUP BY Column1;

答案 4 :(得分:1)

以下查询将有助于计算ROW的平均值:

 select Avg(A.Tamil + A.English + A.Maths + A.Science + A.Social_Science)/5 As 
 Average
 from MarkTable A, MarkTable B, MarkTable C
 where A.RollNo='14UCA002'

这可能有用......

答案 5 :(得分:0)

从平均值执行以下SQL:

select column1,avg(column2) from tablename group by column1;