我试图计算一个值(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 的任何想法。