Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Как да актуализирате SUM на колона над група в същата таблица

Ако приемем, че използвате SQL Server, мисля, че искате нещо подобно:

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

Първоначалната ви заявка има няколко проблема и подозрителни конструкции. Първо, подзаявката за агрегиране не може да се актуализира. Второ, вие правите агрегиране и използвате функция на прозорец с, макар и разрешено, е необичайно. Трето, вие агрегирате по PersonSales и вземане на sum() . Още веднъж разрешено, но необичайно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NULL стойности в клаузата NOT IN

  2. Инструменти за управление на SQL Server 2017

  3. Планирана поддръжка на 24/7 IS база данни в MS SQL Server

  4. Запитване на данни чрез обединяване на две таблици в две бази данни на различни сървъри

  5. Добавете нова колона на таблица към конкретна редна позиция в Microsoft SQL Server