2016-12-04 12 views
-1

私はSQLで初めてで、私のSQLデータベースで平均を計算することに問題があります。私は2つの列(そのIDとそのテーブルに固有のIDと各IDの価格)を持っており、すべてのIDごとに平均を計算する必要があります。平均約SQL

ID  PRICE 
--------------- 
1.   500 
1.   700 
1.   840 
1.   790 
1.   800 
2.  1500 
2.  1480 
2.  1620 
2.  1700 
2.  1560 

(はるかにID番号を持っていますが、私は解決策を推測していることに関係なく、解決策がある場合はIDが存在するどのように多くの同じではありません):私のテーブルには、次のようになります。

平均を計算しようとすると、PRICE列からすべての値が取られますが、ID 1、ID 2、ID 3、ID 4 ...の平均値を計算する必要があります。個別に計算して後で計算します。私はオンラインで答えを見つけようとしましたが、失敗しました。その平均を計算することも可能ですか、別のアプローチが必要ですか?私はあなたのデータが構成されているかどうかはわかりません

SELECT ID, AVG(PRICE) 
FROM SomeTable 
GROUP BY ID; 
+1

[SQL Serverでグループ化された行の平均(http://stackoverflow.com/questions/3100921/average-of-grouped-rows-in-sql-server)の可能性の重複 –

答えて

1

。 説明は必要ありません。あなたが実際に2つの列を持っている場合:ID、価格とIDは一意であるすべての(ユニークな)IDごとに1つだけの価格があるかもしれないので、単純な

SELECT id, price FROM table_name 

は、あなたの平均を与えるだろう。

しかし、あなたの質問は理にかなっていません。 idが一意ではなく、idが同じで価格が異なる行はほとんどないかもしれないとします。その場合は、GROUP BY句が必要です。

SELECT id, avg(price) as avg_price FROM table_name GROUP BY id 
0

ようなものになるだろう