Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Đường trung bình động của Oracle

Tôi không hiểu ý của việc sử dụng TO_CHAR(SDATE, 'W') ? Theo tài liệu, điều này được cho là cung cấp cho bạn số tuần trong tháng ...

Dù sao, tôi đã cố gắng đơn giản hóa truy vấn, hy vọng nó vẫn phù hợp với nhu cầu của bạn:

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;

Tái bút:Tôi cũng không thấy điểm khi thực hiện TO_DATE(TO_CHAR(a.SDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') , điều này tương đương với 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. Bảng ALTER &DROP DDL với việc thực thi ngay lập tức trong cơ sở dữ liệu Oracle

  2. Oracle - Cách cấp cho người dùng quyền đối với các đối tượng của người dùng khác

  3. Tháng 10 năm 2014 CPU gặp sự cố ArcGIS Desktop

  4. Lỗi 404 Không tìm thấy với EM 12c

  5. Tham gia bên ngoài giúp đỡ trong oracle