2010-06-23 17 views
14

Ich habe eine SQL Server-Tabelle .. es so etwas wie das ist:Durchschnitt von gruppierten Zeilen in SQL Server

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

Also, ich brauche die durchschnittlich Column2 aus, aber Gruppe mit column1 vor, das zu tun.
Ich meine, wenn ich Avg (Column2) sage, gibt es nur eine einzelne Zeile mit dem Durchschnitt aller Zeilen zurück.

Was ich brauche, ist, zuerst muss ich sie durch Spalte Gruppe so:
Durchschnitt von column2 wo column1 = 1
Durchschnitt von column2 wo column1 = 2
Durchschnitt von column2 wo column1 = 3

Also möchte ich 3 Zeilen mit den Durchschnittswerte der jeweiligen Werte von Spalte1 zurückgegeben. Ich bin dabei verloren, irgendwelche Hinweise/Hilfe bitte?

ps: Ich habe mehrere verwandte Fragen ausprobiert, und keine von ihnen half/ich konnte es nicht verstehen.

Antwort

19

Wollen Sie das?

select column1, avg(column2) from table group by column1 
2
SELECT column1, AVG(column2) 
    FROM "Insert table name" 
GROUP BY column1 
4

einfach

select AVG(Column2) from table group by Column1 

nicht funktioniert?

+0

danke! es funktioniert auch! – iamserious

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

Das folgende Abfrage für berechnen den Mittelwert eines ROW helfen:

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' 

Dies könnte hilfreich ...

0

Führen Sie die folgende SQL-vom-Durchschnitt:

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