Moyenne glissante
Fredo_
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaite faire la moyenne glissante d'une colonne QT sur les 3 dernières dates inf ou égal DateDiff
La table contient 3 colonnes :
Code DateDiff QT
15 02.01.2014 25
15 03.01.2014 135
15 04.01.2014 35
15 07.01.2014 19
15 09.01.2014 39
15 10.01.2014 50
15 13.01.2014 40
15 14.01.2014 54
SELECT AVG(QT) as moy, from
(SELECT QT
FROM DIFF a
WHERE Code = '15'
and DATEDIFF <= '01/10/2014'
order by Datediff desc
ROWS 1 to 3)
Ce code fonctionne, si je donne en paramètre la date (valable en procédure stockée).
Je souhaiterai l'obtenir pour chaque date de ma table par requête.
Code DateDiff QT Moy
15 02.01.2014 25 25 = AVG(25,0,0)
15 03.01.2014 135 80 = AVG(135,25,0)
15 04.01.2014 35 65 = AVG(35,135,25)
15 07.01.2014 19 63 = AVG(19,35,135)
15 09.01.2014 39 31 = AVG(39,19,35)
15 10.01.2014 50 36 = AVG(50,39,19)
15 13.01.2014 40 43 = AVG(40,50,39)
15 14.01.2014 54 48 = AVG(54,40,50)
Je souhaite faire la moyenne glissante d'une colonne QT sur les 3 dernières dates inf ou égal DateDiff
La table contient 3 colonnes :
Code DateDiff QT
15 02.01.2014 25
15 03.01.2014 135
15 04.01.2014 35
15 07.01.2014 19
15 09.01.2014 39
15 10.01.2014 50
15 13.01.2014 40
15 14.01.2014 54
SELECT AVG(QT) as moy, from
(SELECT QT
FROM DIFF a
WHERE Code = '15'
and DATEDIFF <= '01/10/2014'
order by Datediff desc
ROWS 1 to 3)
Ce code fonctionne, si je donne en paramètre la date (valable en procédure stockée).
Je souhaiterai l'obtenir pour chaque date de ma table par requête.
Code DateDiff QT Moy
15 02.01.2014 25 25 = AVG(25,0,0)
15 03.01.2014 135 80 = AVG(135,25,0)
15 04.01.2014 35 65 = AVG(35,135,25)
15 07.01.2014 19 63 = AVG(19,35,135)
15 09.01.2014 39 31 = AVG(39,19,35)
15 10.01.2014 50 36 = AVG(50,39,19)
15 13.01.2014 40 43 = AVG(40,50,39)
15 14.01.2014 54 48 = AVG(54,40,50)
A voir également:
- Moyenne glissante
- Excel moyenne - Guide
- Moyenne en anglais excel - Guide
- Taille moyenne d'une photo en mo - Guide
- Comment calculer une moyenne sur 20 - Forum Excel
- Moyenne de plusieurs pourcentages excel - Forum Excel
2 réponses
J'ai essayer avec une jointure, mais je ne peux plus faire la limitation à 3
SELECT C1.Datediff as C1D , C3.DATEDIFF, C3.QT
FROM DIFF C1
JOIN (
SELECT a.code, a.DATEDIFF, a.QT
FROM DIFF a
WHERE a.Code = '15'
order by a.Datediff desc
) C3
ON C3.Datediff <= C1.Datediff and C1.code = C3.Code
ORDER By C1.Datediff, C3.DateDiff desc;
Merci pour votre aide
SELECT C1.Datediff as C1D , C3.DATEDIFF, C3.QT
FROM DIFF C1
JOIN (
SELECT a.code, a.DATEDIFF, a.QT
FROM DIFF a
WHERE a.Code = '15'
order by a.Datediff desc
) C3
ON C3.Datediff <= C1.Datediff and C1.code = C3.Code
ORDER By C1.Datediff, C3.DateDiff desc;
Merci pour votre aide
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, ceci va peut-être t’inspirer:
http://www.sqlines.com/mysql/how-to/get_top_n_each_group
http://www.sqlines.com/mysql/how-to/get_top_n_each_group