PostgreSQLテーブルの列の平均値を入力するには、AVG()関数をall_rowsのwindows関数と一緒に使用するか、AVG()関数とUPDATE文を組み合わせた回りくどい方法を使用します。例を使って両方のアプローチを見てみましょう。

以下の「products」テーブルを使用します

PostgreSQL テーブルの列の平均値を入力する 1

方法 1: AVG と Windows 関数を使用して PostgreSQL の列の平均値を入力します。

以下の例では、AVG()とWindows関数を使用して、列全体の平均値を列に入力します。

select *, AVG(price) over all_rows as avg_price
from products
window all_rows as ();

· AVG(price): これは、価格カラム。

·  OVER all_rows:  これは、ウィンドウ関数が all_rows という名前のウィンドウを使用することを指定します。

WINDOW all_rows AS() 関数:

• これは all_rows という名前のウィンドウを定義します。括弧 () は、ウィンドウに結果セット内のすべての行が含まれることを示します。つまり、特定のパーティション分割や順序付けは適用されず、データセット全体に対して操作されます。

出力:

PostgreSQL テーブルの列の平均値を入力する 2

方法 2: AVG と更新ステートメントを使用して PostgreSQL の列の平均値を入力します。

PostgreSQLテーブルの列の平均値を入力するには、AVG() 関数を UPDATE ステートメントと組み合わせて使用​​できます。この操作は、列に別の列の平均値を入力するときに必要になる場合があります。

ステップ1:  avg_priceという列を追加します

ALTER TABLE products ADD COLUMN avg_price decimal(10,2)

ステップ2:  列の平均値を計算し、SETキーワードを使用して平均値でテーブルを更新します。 

UPDATE products
SET avg_price = (SELECT AVG(price) FROM products);

これで、テーブル内のすべての行のavg_price列に平均値が更新されます。

ステップ3:  更新を確認する

avg_price 列が正しく入力されていることを確認するには、テーブルからすべての列を選択します。 

select * from products

それで、私たちの最終テーブルは

出力:

PostgreSQL テーブルの列の平均値を入力する 3