Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menghitung jumlah berjalan &total berjalan di seluruh pelanggan dengan SQL

Anda harus menggunakan ROW_NUMBER (tautan ) bukannya 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah kueri REPLACE INTO praktik yang baik?

  2. Secara otomatis menyelesaikan konflik penggabungan kunci utama

  3. SQL Bandingkan variabel varchar dengan variabel varchar lain

  4. Bagaimana SQL Server memutuskan format untuk konversi datetime implisit?

  5. RowNumber () dan Partisi Dengan bantuan kinerja diinginkan