Hallo,
ich habe eine Tabelle die wie folgt aufgebaut ist:
id (int),
price (decimal(10,4)),
date (date)
Nun bekomme ich mit dem Query
den Durchschnittspreis einer Stunde sowie ein Datum.
Das sieht ewta wo aus:
Okay. Nun möchte ich im endeffekt einen Moving Average über die letzten x Stunden bekommen. Wie bekomme ich sowas hin? Geht das als Query oder ist eine StoredProcedure bzw eine .NET StoredProcedure (also clr intergration) schneller?
Desweiteren habe ich überlegt, bei einem Insert direkt den MA ausrechnen zu lassen über einen Trigger. Ist das praktikabel?
ich habe eine Tabelle die wie folgt aufgebaut ist:
id (int),
price (decimal(10,4)),
date (date)
Nun bekomme ich mit dem Query
Code:
select dbo.DateTime(datepart(year, t1.date), datepart(month, t1.date), datepart(day, t1.date), datepart(hour, t1.date), 0,0) as dt, avg(price) as ap from data t1 where t1.fk_id = 1 and datepart(month, t1.date) = 7 and datepart(hour, t1.date) between 8 and 18 group by datepart(year, t1.date), datepart(month, t1.date), datepart(day, t1.date), datepart(hour, t1.date)
Das sieht ewta wo aus:
Code:
2007-07-02 09:00:00.000 1533.333333 2007-07-02 10:00:00.000 1522.587628 2007-07-02 11:00:00.000 1515.759259
Okay. Nun möchte ich im endeffekt einen Moving Average über die letzten x Stunden bekommen. Wie bekomme ich sowas hin? Geht das als Query oder ist eine StoredProcedure bzw eine .NET StoredProcedure (also clr intergration) schneller?
Desweiteren habe ich überlegt, bei einem Insert direkt den MA ausrechnen zu lassen über einen Trigger. Ist das praktikabel?