Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Średnia ruchoma Oracle

Nie rozumiem, jaki jest sens używania TO_CHAR(SDATE, 'W') ? Zgodnie z dokumentem ma to dać numer tygodnia w miesiącu...

W każdym razie starałem się uprościć zapytanie, mając nadzieję, że nadal pasuje do twoich potrzeb:

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:Nie widzę sensu wykonywania TO_DATE(TO_CHAR(a.SDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') , jest to odpowiednik 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. UTWÓRZ TABELĘ WEWNĄTRZ PROCEDURY

  2. Jak zmienić nazwę kolumny tabeli w Oracle 10g?

  3. Oracle Forms/Applications w Internet Explorerze 8 przy użyciu JInitatora

  4. Oracle DB i SQL Developer:Raport o błędzie:wykonanie zakończone z ostrzeżeniem — Jak *zobaczyć* ostrzeżenie?

  5. Jak uzyskać wartości parametrów wiązania z obiektu Oracle JDBC PreparedStatement?