views:

41

answers:

5

Hi there.

I have an Sql Server Table.. it's something like this:

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

So, I need to select the average of Column2,but group with column1 before doing that.
I mean, if I say Avg(Column2) it just returns a single row with the average of all rows.

What I need is, first i need to group them by column so:
Average of column2 where column1 = 1
Average of column2 where column1 = 2
Average of column2 where column1 = 3

So I want 3 rows returned with the averages of respective values of column1. I am lost at doing this, any hints / help please?

ps: I tried several related questions, and none of them helped / I couldn't understand.

+1  A: 

SELECT COLUMN1, AVG(COLUMN2) FROM GROUP BY COLUMN1

Baaju
A: 

simple

select AVG(Column2) from table group by Column1

doesn't work?

Yossarian
thanks! it works too!
iamserious
+1  A: 

Is this what you want?

select column1, avg(column2) from table group by column1
Blorgbeard
yes, this works, thanks!I dint know about the group clause!!
iamserious
A: 

I think this should be quite straightforward

SELECT Column1, AVG(Column2) AS Average
FROM TABLE
GROUP BY Column1 
Martin Smith
A: 
SELECT Column1, AVG(Column2) FROM test GROUP BY Column1;
Fredrik_jakob