sql >> データベース >  >> RDS >> Sqlserver

SQL を使用して顧客全体の現在のカウントと現在の合計を計算する

    ROW_NUMBER を使用する必要があります (リンク ) COUNT の代わりに :

    DECLARE @Threshold NUMERIC(19,2)=1000; -- Use the same data type as `[AMT]`'s data type
    
    Select
      [DID]
    , [AMT]
    , [Gf_Date]
    --, COUNT([GID]) OVER (PARTITION BY [DID] ORDER BY [Gf_Date]) [RunningGift_Count]
    , ROW_NUMBER() OVER (PARTITION BY [DID] ORDER BY [Gf_Date]) [RunningGift_Count]
    , SUM([AMT]) OVER (PARTITION BY [DID] ORDER BY [Gf_Date]) [CumlativeTotal]
    , CASE
          WHEN SUM([AMT]) OVER (PARTITION BY [DID] ORDER BY [Gf_Date]) >= @Threshold THEN 1
          ELSE 0
      END IsThresholdPassed
    FROM [dbo].[MCT]
    WHERE [SC] is null
    ORDER BY [DID]
    



    1. utf8_binとutf_unicode_ci

    2. MySQL ALTER TABLE、一意のランダム値を持つ列を追加

    3. mysql-connectorpython'IN'演算子がリストとして保存されます

    4. PostgreSQLで条件付きサブクエリを使用して一意のインデックスを作成するにはどうすればよいですか?