sql >> Databáze >  >> RDS >> Oracle

Oracle klouzavý průměr

Nechápu, jaký má smysl používat TO_CHAR(SDATE, 'W') ? Podle dokumentu vám to má dát číslo týdne v měsíci...

Každopádně jsem se pokusil zjednodušit dotaz a doufal jsem, že stále vyhovuje vašim potřebám:

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:Nevidím smysl ani v tom, dělat TO_DATE(TO_CHAR(a.SDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') , to je ekvivalentní a.SDATE ...




  1. MySQL Vyberte konkrétní sloupec

  2. Nahrávání velké databáze mysql na AWS RDS pomocí putty – „Server MySQL zmizel“

  3. MySQL získá náhodnou hodnotu mezi dvěma hodnotami

  4. Nechápu, jak funguje nextval() postgresql, může to někdo vysvětlit?