Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Como atualizar a soma da coluna sobre o grupo na mesma tabela


Supondo que você esteja usando o SQL Server, acho que você quer algo assim:
WITH toupdate AS
     (SELECT team, year, 
             Sum(personsales) OVER (partition BY team, year) AS newTeamSales 
      FROM salessummary
     ) 
UPDATE toupdate 
   SET teamsales = newteamsales; 

Sua consulta original tem vários problemas e construções suspeitas. Primeiro, uma subconsulta de agregação não é atualizável. Segundo, você está fazendo uma agregação e usar uma função de janela com, embora permitido, é incomum. Terceiro, você está agregando por PersonSales e pegando a sum() . Mais uma vez, permitido, mas incomum.