如何在同一个表中使用另一列的计数更新列

问题描述 投票:0回答:1

这个选择语句工作正常并给我我需要的答案,因为我试图查看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)
sql sql-server-2017
1个回答
2
投票

使用窗口函数和可更新的CTE:

with toupdate as (
      select ln.*, count(*) over (partition by id) as cnt
      from Locations_Number ln
     )
update toupdate
    set CountOfID = cnt;
© www.soinside.com 2019 - 2024. All rights reserved.