Sql Server Express:
Ich hab eine Tabelle die sieht etwa so aus:
Datetime - Wert
05.03.2007 00:00:00 - 2
05.03.2007 00:00:01 - 2,1
05.03.2007 00:00:10 - 2,2
05.03.2007 00:00:50 - 1,8
05.03.2007 00:01:10 - 2
05.03.2007 00:02:00 - 3
05.03.2007 00:03:01 - 2
05.03.2007 00:03:08 - 1,95
05.03.2007 00:04:10 - 2,01
05.03.2007 00:04:35 - 2,1
usw usw
10.03.2007 19:04:35 - 2,1
...
Nun möchte ich in einer Abfrage folgendes Ergebnis erhalten:
05.03.2007 00:01:00 - Durchschnitt( zw. 00:00:00-00:00:59)
05.03.2007 00:02:00 - Durchschnitt( zw. 00:01:00-00:01:59)
05.03.2007 00:03:00 - Durchschnitt( zw. 00:02:00-00:02:59)
05.03.2007 00:04:00 - Durchschnitt( zw. 00:03:00-00:03:59)
...
Also alles was innerhalb einer Minute passiert ist, zusammengefasst.
Ist das mit einer Sql Abfrage möglich oder muss ich sowas mit Programmcode machen?
hi regen,
das hier könnte sein, was du brauchst:
select
datepart(year, Beginn),
datepart(month, Beginn),
datepart(day, Beginn),
datepart(minute, Beginn),
avg([die wertespalte])
from
meineTabelle
where
(irgendwelche sonstige kriterien)
group by
datepart(year, Beginn),
datepart(month, Beginn),
datepart(day, Beginn),
datepart(minute, Beginn)
zwei nachteile:
hth
ron
Hallo,
ich würde das auch per Programmcode lösen, da du es so formatieren kannst wie du willst.
Achtung! - Hinter dir ist ein dreiköpfiger Affe!
Hallo,
@citizen.ron:
Die Lösung sieht schonmal ganz gut aus. Eine neue Datetime kann man nicht wieder zusammenbauen?!
@powerslave:
Ja natürlich kann man da machen was man will, aber auf Kosten von Geschwindigkeit. Die Anzahl der Einträge befindet sich größenordnungsmäßig im Millionenbereich.
hi regen
Eine neue Datetime kann man nicht wieder zusammenbauen?!
doch, mit
DateTime d = new DateTime(jahr, monat, tag, std, min, 0)
übrigens hatte ich in meiner gruppierung die stunde vergessen, also:
select
datepart(year, Beginn) as Jahr,
datepart(month, Beginn) as Monat,
datepart(day, Beginn) as Tag,
datepart(hour, Beginn) as Std,
datepart(minute, Beginn) as [Min],
avg([die wertespalte])
from
meineTabelle
where
(irgendwelche sonstige kriterien)
group by
datepart(year, Beginn),
datepart(month, Beginn),
datepart(day, Beginn),
datepart(hour, Beginn)
datepart(minute, Beginn)
und dann oben genannte umwandlung.
gruß
ron