web-dev-qa-db-ja.com

SQL Serverのグループ化された行の平均

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 

したがって、Column2の平均を選択する必要がありますが、それを行う前にcolumn1とグループ化します。
つまり、Avg(Column2)と言うと、すべての行の平均を含む単一の行を返すだけです。

私が必要なのは、まず列ごとにグループ化する必要があるためです。
column1 = 1であるcolumn2の平均
column1 = 2であるcolumn2の平均
列2の平均、列1 = 3

したがって、column1のそれぞれの値の平均を含む3つの行を返します。私はこれをすることに迷っています、何かヒント/助けてください?

pS:私はいくつかの関連する質問を試しましたが、どれも役に立たなかった/理解できませんでした。

16
iamserious

これは、あなたの望むことですか?

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

簡単な

select AVG(Column2) from table group by Column1

動作しませんか?

4
nothrow
SELECT column1, AVG(column2) 
  FROM "Insert table name"
GROUP BY column1 
2
Baaju
SELECT Column1, AVG(Column2) FROM test GROUP BY Column1;
1
user373455

次のクエリは、行の平均値を計算するのに役立ちます。

 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'

これは役に立ちます...

0
Ismayil S

平均から次のSQLを実行します。

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