[英]count the instances of value in sub-query, update table
我試圖計算一個值(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有任何想法。
UPDATE table_name a
SET idsubtotal=( SELECT COUNT(1)
FROM table_name b
WHERE a.id=b.id
AND a.mytype=b.mytype
)
當我在下面嘗試此操作時,它計算的是mytype值在整個表中出現的次數,但是我需要知道它在id值子組中出現了多少次(例如,“ red”在其中出現了多少次) ID 101行,答案= 2)。
SELECT id, mytype, COUNT(*)
FROM table_name
GROUP BY id, mytype
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.