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

Rata-Rata Bergerak / Rata-Rata Bergulir

Berikut adalah SQL Fiddle yang menunjukkan kueri berikut:

WITH TempS as 
(
  SELECT s.SNo, s.value, 
  ROW_NUMBER() OVER (ORDER BY s.SNo) AS RowNumber
  FROM MyTable AS s
)
SELECT m.SNo, m.value,
(
  SELECT SUM(s.value) 
  FROM TempS AS s
  WHERE RowNumber >= m.RowNumber
  AND RowNumber <= m.RowNumber + 2
) AS Sum3InRow
FROM TempS AS m

Dalam pertanyaan Anda, Anda meminta untuk menjumlahkan 3 nilai berturut-turut. Anda memodifikasi pertanyaan Anda dengan mengatakan jumlah catatan berurutan yang perlu Anda jumlahkan dapat berubah. Dalam kueri di atas, Anda hanya perlu mengubah m.RowNumber + 2 untuk apa pun yang Anda butuhkan.

Jadi jika Anda membutuhkan 60, gunakan

m.RowNumber + 59

Seperti yang Anda lihat, ini sangat fleksibel karena Anda hanya perlu mengubah satu nomor.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tweet Lucu Tentang Kehidupan DBA

  2. SQL Server dan Kerentanan Spectre/Meltdown

  3. Mengambil catatan terakhir di setiap grup dari database - SQL Server 2005/2008

  4. 3 Area yang Akan Diuntungkan dari Menggunakan Alat Pemantauan Kinerja SQL Server

  5. Bagaimana Anda melakukan Versioning di Nhibernate?