以下のようなテーブルがあるとき、
CREATE TABLE worktables ( id uuid DEFAULT gen_random_uuid() NOT NULL, wname varchar(32) NOT NULL, ktype NUMERIC NOT NULL, point NUMERIC DEFAULT 0 NOT NULL, at_create date NOT NULL, CONSTRAINT worktables_pkey PRIMARY KEY (id) );
データが以下のように格納されている。

OVER関数を使わずにGROUP BY で求める集計値のサブクエリ使う方法、
全ての point合計値で比率を求める
SELECT a.id, a.wname, a.ktype, a.at_create, a.point, b.point_amount, ROUND(a.point / b.point_amount, 5) AS point_ratio FROM worktables a, (SELECT SUM(point) AS point_amount FROM worktables) b

ktype別の point合計値で比率を求める
SELECT a.id, a.wname, a.ktype, a.at_create, a.point, b.point_amount, ROUND(a.point / b.point_amount, 5) AS point_ratio FROM worktables a LEFT JOIN (SELECT ktype, SUM(point) AS point_amount FROM worktables GROUP BY ktype ) b ON a.ktype = b.ktype

サブクエリではくて、OVER関数を使う方法、、、
OVER 関数を使う。(全ての point合計値の比率)
SELECT id, wname, ktype, at_create, point, SUM(point) OVER() AS point_amount, ROUND(point / SUM(point) OVER(), 5) AS point_ratio FROM worktables
OVER 関数を使う。(ktype別の point合計値の比率)
SELECT id, wname, ktype, at_create, point, SUM(point) OVER(PARTITION BY ktype) AS point_amount, ROUND(point / SUM(point) OVER(PARTITION BY ktype), 5) AS point_ratio FROM worktables
PARTITION BY は、複数指定することができて、
ktype 、更に at_create でグルーピングする場合は、
OVER(PARTITION BY ktype, at_create )
と記述する。