2016-07-29 9 views
-2

私は2つのテーブルAとBを持っています。テーブルAはIDと文字列を持ち、テーブルBはAのIDと数値(float)へのポインタを持っています。次のSQL文を実行し、1つの文字列を選択している間に結合を戻すにはどうすればよいですか?

もテーブルAから文字列を示しながら、私は、テーブルAにidでグループとして数を平均し、テーブルBからすべてを選択する

これは動作しません:

select a.id,b.id,avg(num),str from a,b where a.id=b.id; 

それは私にstrをグループ化する上でエラーが発生します。

+0

どのDBMSを使用していますか? –

+1

あなたの質問は解釈が可能なので、実際にはいくつかのサンプルの入力と出力を表示する必要があります。 –

+0

SQL内のポインタとは何ですか?あなたは外来キーを意味しましたか?正確なエラーメッセージを表示せずにエラーを説明するための-1。 –

答えて

0

あなたはAVG()のように、集計関数を使用するときはいつでも、あなたがグループにすでに基本的にはそれだそれ

SELECT a.id, b.id, avg(num), a.str FROM a, b WHERE a.id = b.id 
GROUP BY a.id, b.id, a.str; 

をグループ化されていない結果を持っています。それ以外は、 "str"という表がどのテーブルから来るのかを明確にする必要があります。それはaまたはbですか?あなたはgroup by

select a.id,b.id,avg(num),a.str from a,b where a.id=b.id group by a.id 

を使用する必要があり、集計関数を使用するには

+0

strがテーブルAから来ています。 – kloop

-1

使用(コメントごとに更新されています。回答)group by句それに役立つことを願っています。

+0

他のカラムはグループの一部ではないので、これでも同じエラーが発生します。 – durbnpoisn

関連する問題