Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Rata-rata pergerakan Oracle

Saya tidak mengerti apa gunanya menggunakan TO_CHAR(SDATE, 'W') ? Menurut doc ini seharusnya memberi Anda nomor minggu di bulan itu...

Bagaimanapun saya mencoba menyederhanakan kueri, berharap itu masih sesuai dengan kebutuhan Anda:

SELECT x.*, ABS (LTMA-STMA) DIFFERENCE
FROM
(
  SELECT SDATE, PAYLOAD,
         AVG(PAYLOAD) OVER (ORDER BY SDATE rows BETWEEN 14 PRECEDING AND CURRENT ROW) STMA,
         AVG(PAYLOAD) OVER (ORDER BY SDATE rows BETWEEN 90 PRECEDING AND CURRENT ROW) LTMA
  FROM
  (
    SELECT a.SDATE, SUM(a.PAYLOAD) PAYLOAD
    FROM TABLE_PAYLOAD a
    WHERE a.SDATE  > sysdate - 3 * 365      
    GROUP BY a.SDATE
  )
) x
ORDER BY SDATE;

PS:Saya juga tidak melihat gunanya melakukan TO_DATE(TO_CHAR(a.SDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') , ini setara dengan a.SDATE ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemicu Oracle yang memeriksa kendala setiap bulan

  2. PLSQL:Dapatkan jumlah catatan yang diperbarui vs dimasukkan saat pernyataan gabungan digunakan

  3. Menemukan Simbol Diagram Relasional Tidak Dikenal di Oracle SQL Developer

  4. Dapatkan jumlah total baris dalam kueri pagination

  5. ORA-20001 di R12 Kumpulkan statistik skema pada 11g(FND_HISTOGRAM_COLS)