sql >> Databáze >  >> RDS >> Sqlserver

SQL Jak aktualizovat SUM sloupce přes skupinu ve stejné tabulce

Za předpokladu, že používáte SQL Server, myslím, že chcete něco takového:

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

Váš původní dotaz obsahuje několik problémů a podezřelých konstrukcí. Za prvé, agregační poddotaz nelze aktualizovat. Za druhé, provádíte agregaci a používáte funkci okna s, ačkoli je to povoleno, je neobvyklé. Za třetí, agregujete podle PersonSales a vzít sum() . Opět povolené, ale neobvyklé.



  1. Operátor Oracle (+).

  2. Postgres je nejlepší databáze – Důvod č. 1:Vývojáři ji milují!

  3. Načítání dat z textového souboru do tabulky v oracle

  4. Přidání nové hodnoty k existujícímu typu ENUM