这个选择语句工作正常并给我我需要的答案,因为我试图查看ID出现在同一个表中的次数,因为它会告诉我ID显示的位置(状态中的位置)。
SELECT ID, COUNT(ID) as CountOfID
FROM Locations_Number
GROUP BY ID
ORDER BY CountOfID Asc;
但是,如何将其转换为UPDATE语句,以便我可以参考它由于“CountOfLocations”(无效的列名'CountOfLocations'),下面显然不起作用。我可以在这里使用内连接吗?
UPDATE Locations_Number
set CountOfID =
(SELECT COUNT(ID) as CountOfID
FROM Locations_Number
GROUP BY ID, CountOfID)
使用窗口函数和可更新的CTE:
with toupdate as (
select ln.*, count(*) over (partition by id) as cnt
from Locations_Number ln
)
update toupdate
set CountOfID = cnt;