如何使用同一 table 中另一列的计数更新列

How to a Update Column with a Count of another Column in the same table

这个 select 语句工作正常并给了我需要的答案,因为我试图查看一个 ID 在同一个 table 中出现了多少次,因为它会告诉我有多少个位置该 ID 显示在(如美国的位置)。

SELECT ID, COUNT(ID) as CountOfID
FROM Locations_Number
GROUP BY ID
ORDER BY CountOfID Asc;

但是我怎样才能将它翻译成更新语句以便我可以参考它 由于 "CountOfLocations",以下显然不起作用 (无效的列名称 'CountOfLocations')。我可以在这里使用内部联接吗?

UPDATE Locations_Number
set CountOfID =
(SELECT COUNT(ID) as CountOfID
FROM Locations_Number
GROUP BY ID, CountOfID)

使用 window 函数和可更新的 CTE:

with toupdate as (
      select ln.*, count(*) over (partition by id) as cnt
      from Locations_Number ln
     )
update toupdate
    set CountOfID = cnt;