Recherche…


Moyenne mobile centrée

Calculer une moyenne mobile centrée sur un prix sur 6 mois (126 jours ouvrables):

SELECT TradeDate, AVG(Px) OVER (ORDER BY TradeDate ROWS BETWEEN 63 PRECEDING AND 63 FOLLOWING) AS PxMovingAverage
FROM HistoricalPrices

Notez que, parce qu’il faudra jusqu’à 63 lignes avant et après chaque ligne renvoyée, au début et à la fin de la plage TradeDate, elle ne sera pas centrée: quand elle atteindra la valeur TradeDate la plus élevée, inclure dans la moyenne.

Recherchez l'élément le plus récent dans une liste d'événements horodatés

Dans les tables enregistrant des événements, il existe souvent un champ datetime qui enregistre l'heure à laquelle un événement s'est produit. Trouver l'événement le plus récent peut être difficile car il est toujours possible que deux événements aient été enregistrés avec des horodatages exactement identiques. Vous pouvez utiliser row_number () (ordre par ...) pour vous assurer que tous les enregistrements sont classés de manière unique, et sélectionnez le premier (où my_ranking = 1)

select *
from (
    select 
        *,
        row_number() over (order by crdate desc) as my_ranking
    from sys.sysobjects
) g
where my_ranking=1

Cette même technique peut être utilisée pour renvoyer une seule ligne de n'importe quel jeu de données avec des valeurs potentiellement dupliquées.

Moyenne mobile des 30 derniers articles

Moyenne mobile des 30 derniers articles vendus

SELECT
    value_column1,
    (   SELECT
            AVG(value_column1) AS moving_average
        FROM Table1 T2
        WHERE ( SELECT
                    COUNT(*)
                FROM Table1 T3
                WHERE date_column1 BETWEEN T2.date_column1 AND T1.date_column1
                ) BETWEEN 1 AND 30
    ) as MovingAvg
FROM Table1 T1


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow