sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Cómo actualizar la SUMA de la columna sobre el grupo en la misma tabla

Suponiendo que está utilizando SQL Server, creo que desea algo como esto:

WITH toupdate AS
     (SELECT team, year, 
             Sum(personsales) OVER (partition BY team, year) AS newTeamSales 
      FROM salessummary
     ) 
UPDATE toupdate 
   SET teamsales = newteamsales; 

Su consulta original tiene varios problemas y construcciones sospechosas. Primero, una subconsulta de agregación no es actualizable. En segundo lugar, está realizando una agregación y utilizando una función de ventana que, aunque está permitida, es inusual. En tercer lugar, está agregando por PersonSales y tomando el sum() . Una vez más, permitido, pero inusual.