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. Oracle PL/SQLの優れたリファレンス

    2. PL / pgSQL関数:executeステートメントを使用して複数の列を持つ通常のテーブルを返す方法

    3. 集計関数を使用してテーブルから最大値と最小値を取得する方法-SQLServer/TSQLチュートリアルパート129

    4. ランダムタプルを取得するためのTablesampleおよびその他の方法