sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Hur man uppdaterar SUMMA för kolumn över grupp i samma tabell

Om du antar att du använder SQL Server tror jag att du vill ha något sånt här:

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

Din ursprungliga fråga har flera problem och misstänkta konstruktioner. För det första är en aggregeringsunderfråga inte uppdateringsbar. För det andra gör du en aggregering och att använda en fönsterfunktion med, även om det är tillåtet, är ovanligt. För det tredje aggregerar du efter PersonSales och ta sum() . Återigen tillåtet, men ovanligt.



  1. JPA - EclipseLink - Hur man ändrar standardschema

  2. Sätt första bokstaven med stor bokstav. MySQL

  3. Hitta skillnaden mellan tidsstämplar i sekunder i PostgreSQL

  4. Använda varningar och operatörer i SQL Server