Как обновить столбец с количеством других столбцов в той же таблице - PullRequest
0 голосов
/ 18 апреля 2019

Этот оператор выбора отлично работает и дает мне нужный ответ, так как я пытаюсь увидеть, сколько раз идентификатор появляется в одной и той же таблице, и он подскажет мне, сколько местоположений отображается в этом идентификаторе (местоположения, как в Штатах ).

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)

1 Ответ

2 голосов
/ 18 апреля 2019

Используйте функцию окна и обновляемый CTE:

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