SQL Oracle AVG per Day herausfinden

gfeschu

Ensign
Registriert
Aug. 2010
Beiträge
147
Hallo zusammen

Ich habe eine Tabelle mit folgenden Werten:

daten.JPG

Ich möchte schlussendlich eine solche Liste bekommen. Ob jetzt bei Uhrzeit 00:00 oder nichts angegeben ist, macht keinen Unterschied und ist egal.

resultat.JPG


Zurzeit habe ich folgenden Code:

Code:
SELECT 
	TRUNC(TestDATE),
	AVG(TestTSUMMARY) AS "AVGSUMMARY"
FROM
	Test_Logs
WHERE
	(TestDATE Between sysdate-7 AND sysdate) AND
GROUP BY TRUNC(TestDATE)
ORDER BY TRUNC(TestDATE)

Aber dieser Code gibt mir zwar eine Liste zurück die ich gebrauchen kann, aber ich bin mir nicht wirklich sicher ob der Durchschnitt wirklich stimmt.
Wäre super wenn jemand mit viel Oracle bzw. SQL Erfahrung mir weiterhelfen kann.

greez gfeschu
 
Guten Abend,
was genau möchtest Du machen? Ob dein SQL-Baustein richtig ist hängt davon ab, ob Du über jeden Tag
  • den Durchschnittsbetrag ermitteln (avg()) oder
  • alle Beträge summieren (sum()) willst
Zurzeit bildest Du den Durchschnitt über alle Beträge eines Tages.

FrankR
 
Hi,

das "AND" am Ende deines WHERE Statements hat dort nichts zu suchen.


Wenn die Uhrzeit keine Rolle spielt, würde ich diese im WHERE und im GROUP BY nicht mit einfließen lassen, sonst erhälst du gruppierte Ergebnisse, die das gleiche Datum aber eine andere Uhrzeit haben.


//Aus dem Kopf heraus, habe leider keine Möglichkeit den Code zu testen
Code:
SELECT 
	to_date(TestDATE, 'dd/mm/yyyy'),
	AVG(TestTSUMMARY) AS "AVGSUMMARY"
FROM
	Test_Logs
WHERE
	to_date(TestDATE, 'dd/mm/yyyy') Between to_date(sysdate-7, 'dd/mm/yyyy') AND to_date(sysdate, 'dd/mm/yyyy')
GROUP BY to_date(TestDATE, 'dd/mm/yyyy')
ORDER BY to_date(TestDATE, 'dd/mm/yyyy')

Ansonsten sollte die Durchschnittsberechnung des Wertes "TestTSUMMARY", gruppiert über volle Tage dargestellt werden.
 

Ähnliche Themen

Zurück
Oben