2017-06-27 20 views
0

col1に基づいて、col2の平均値を求める必要があります。現在、データを処理するカーソルがありますが、非常に効率が悪く、whileループを効果的に使用してデータを処理する方法がわかりません。データの最初の部分は次のとおりです。このデータを効率的にどのように実行できますか?

Col1  Col2 
2   12 
2   43 
2   49 
2   51 
3   51 
3   49 
3   43 
3   12 
5   12 
5   12 
5   43 
5   49 
5   51 
6   51 
6   49 
6   43 
6   12 
7   12 
7   12 
7   43 
7   51 
7   49 

列1は、クエリの実行後に繰り返し値を持たないでください。考え方は、col1をガイドとして使用してcol2のすべての数値を平均することです。 `GROUP BY`:

+1

ヒントによって平均とグループを使用することができます。 –

+1

ヒント#2 'avg()' – Will

+0

ヒント#1と2の抽象度:データセット内のデータをレコードで記録しないでください。 'GROUP BY'は列挙された列の値の1つに値のようにGROUPします。 AVG()は集計関数で、指定された列の値とグループ内で定義された列の平均値をとります。 – xQbert

答えて

2

あなたは

select col1, avg(col2) 
    from my_table 
    group by col1 
+0

"group by"句がありませんでした。そして、今私は愚かだと感じる – Sean

関連する問題