query bewegend gemiddelde ?
Ik heb een (example) tabel met de volgende velden en inhoud
item datum prijs
item1 1/1/2009 10
item1 1/2/2009 11
item1 1/3/2009 12
item1 1/4/2009 11
item1 1/5/2009 10
item1 1/6/2009 10
item1 1/7/2009 10
Als ik maar met 1 item werk lukt het om een 3 dagen moving average te ceeren
SELECT
item,datum,volume,
(SELECT SUM(t2.volume) / COUNT(t2.volume)
FROM tradecount t2
WHERE DATEDIFF(t1.datum, t2.datum) BETWEEN 0 AND 2) AS 'avg3day'
FROM tradecount t1
ORDER BY t1.item,t1.datum,
item datum volume avg3day
item1 1/1/2009 10 10.0000
item1 1/2/2009 11 10.5000
item1 1/3/2009 12 11.0000
item1 1/4/2009 11 11.3333
item1 1/5/2009 10 11.0000
item1 1/6/2009 10 10.3333
item1 1/7/2009 10 10.0000
Als ik met meerder items werk, is er een probleempje
item1 heeft ineens een ander moving gemiddelde en items 2 en 3 in eens ook ???
ik krijg het niet voor elkaar om dit goed te doen
item datum volume avg3day
item1 1/7/2009 10 10.0000
item1 1/1/2009 10 10.0000
item1 1/4/2009 11 10.4444
item1 1/5/2009 10 10.3333
item1 1/2/2009 11 10.1667
item1 1/6/2009 10 10.1111
item1 1/3/2009 12 10.3333
item2 1/3/2009 10 10.3333
item2 1/7/2009 10 10.0000
item2 1/4/2009 10 10.4444
item2 1/1/2009 10 10.0000
item2 1/5/2009 10 10.3333
item2 1/2/2009 10 10.1667
item2 1/6/2009 10 10.1111
item3 1/4/2009 10 10.4444
item3 1/7/2009 10 10.0000
item3 1/1/2009 10 10.0000
item3 1/5/2009 10 10.3333
item3 1/2/2009 10 10.1667
item3 1/3/2009 10 10.3333
item3 1/6/2009 10 10.1111
In de database zitten duizenden items, dagelijks geupdate over meer dan een jaar.
wat ik uiteindelijk wil is kolommen met een week, maand, kwartaal en jaar moving average
item datum prijs avgweek avgmonth avgquarter avgyear
Kan er iemand een licht op laten schijnen ?
nobloz
Ik heb een (example) tabel met de volgende velden en inhoud
item datum prijs
item1 1/1/2009 10
item1 1/2/2009 11
item1 1/3/2009 12
item1 1/4/2009 11
item1 1/5/2009 10
item1 1/6/2009 10
item1 1/7/2009 10
Als ik maar met 1 item werk lukt het om een 3 dagen moving average te ceeren
SELECT
item,datum,volume,
(SELECT SUM(t2.volume) / COUNT(t2.volume)
FROM tradecount t2
WHERE DATEDIFF(t1.datum, t2.datum) BETWEEN 0 AND 2) AS 'avg3day'
FROM tradecount t1
ORDER BY t1.item,t1.datum,
item datum volume avg3day
item1 1/1/2009 10 10.0000
item1 1/2/2009 11 10.5000
item1 1/3/2009 12 11.0000
item1 1/4/2009 11 11.3333
item1 1/5/2009 10 11.0000
item1 1/6/2009 10 10.3333
item1 1/7/2009 10 10.0000
Als ik met meerder items werk, is er een probleempje
item1 heeft ineens een ander moving gemiddelde en items 2 en 3 in eens ook ???
ik krijg het niet voor elkaar om dit goed te doen
item datum volume avg3day
item1 1/7/2009 10 10.0000
item1 1/1/2009 10 10.0000
item1 1/4/2009 11 10.4444
item1 1/5/2009 10 10.3333
item1 1/2/2009 11 10.1667
item1 1/6/2009 10 10.1111
item1 1/3/2009 12 10.3333
item2 1/3/2009 10 10.3333
item2 1/7/2009 10 10.0000
item2 1/4/2009 10 10.4444
item2 1/1/2009 10 10.0000
item2 1/5/2009 10 10.3333
item2 1/2/2009 10 10.1667
item2 1/6/2009 10 10.1111
item3 1/4/2009 10 10.4444
item3 1/7/2009 10 10.0000
item3 1/1/2009 10 10.0000
item3 1/5/2009 10 10.3333
item3 1/2/2009 10 10.1667
item3 1/3/2009 10 10.3333
item3 1/6/2009 10 10.1111
In de database zitten duizenden items, dagelijks geupdate over meer dan een jaar.
wat ik uiteindelijk wil is kolommen met een week, maand, kwartaal en jaar moving average
item datum prijs avgweek avgmonth avgquarter avgyear
Kan er iemand een licht op laten schijnen ?
nobloz
Laatst bewerkt: