0

現在、これら2つのテーブルがあります。

t1
------|
pageid |

t2
-------|------
pageid |age

私がしようとしているのは、t1 から各ページ ID を 1 つずつ取得し、t2 のページ ID と比較する選択を実行し (t2 には同じ値のページ ID が複数ある場合があります)、テーブル t2 のすべての年齢の平均をvalue は t1 から取得したばかりで、t1 のすべてのページ ID に対してこれを実行したいと考えています。これが私の現在のSQLステートメントです。最終的にはすべての平均の平均を取ります(必要に応じてさらに詳しく説明できます)。

Select AVG(age) from t2 INNER
JOIN t1 ON t2.pageid = t1.pageid;    

次の SQL ステートメントを使用する場合

Select AVG(age) from t2 INNER
JOIN t1 ON t2.pageid = 1;  

次に、t2 の値が 1 であるすべてのページ ID のすべての平均年齢が正しく計算されます。ただし、1 つだけではなく、t1 の各ページ ID エントリに対してこのプロセスを実行する必要があります。助言がありますか?

4

1 に答える 1

1

t1.pageid選択の列として追加し、その列に aを追加して、フィルターGROUP BYを取り除くだけです。pageid = 1

Select t1.pageid, AVG(age) from t2 INNER
JOIN t1 ON t2.pageid = t1.pageid
group by t1.pageid;  
于 2013-11-14T19:22:00.073 に答える