値 (mytype) が個別の ID 値内に出現する回数をカウントし、各行のこのカウント (idsubtotal) でテーブルを更新しようとしています。私が持っているテーブル:
id | mytype | idsubtotal
-----+--------+-----------
44 red
101 red
101 red
101 blue
101 yellow
494 red
494 blue
494 blue
494 yellow
494 yellow
idsubtotal 列を計算/更新する必要があるため、次のようになります。
id | mytype | idsubtotal
-----+--------+-----------
44 red 1
101 red 2
101 red 2
101 blue 1
101 yellow 1
494 red 1
494 blue 2
494 blue 2
494 yellow 2
494 yellow 2
以下でこれを試すと、テーブル全体で mytype 値が出現する回数がカウントされますが、id 値のサブグループ内で何回出現するかを知る必要があります (たとえば、"red" は、 ID 101 行、回答 = 2)。
SELECT id, mytype,
COUNT(*) OVER (PARTITION BY mytype) idsubtotal
FROM table_name
この小計をテーブル自体に格納すると (必要なときにライブで計算するのではなく)、テーブルのデータ モデルが不適切になることはわかっていますが、私の場合はこのようにする必要があります。
また、私の質問はこの質問に似ていますが、少し異なります.以前の回答や他の投稿からのSQLの非常に原始的な理解を使用して調整しようとしたものは何もありません. どんなアイデアでもTIA。