So, nach all den super Vorschlägen wende ich mich nun an euch mit einer Sache, bei der ich einfach überhaupt nicht weiterkomme.
Und zwar geht es darum, dass ich über den Zeitraum von April bis Mai ein Histogramm erstellen muss, das mir sagt wie viele Aufträge in einem bestimmten Zeitraum eingegangen sind. Meine Tabelle sollte so aussehen:
Von - Bis - Aufträge - Anteil
00:00 - 00:29 - 00 - 0%
00:30 - 00:59 - 02 - 12,5%
01:00 - 01:29 - 10 - 62,5%
…
23:30 - 23:59 - 04 - 25%
(natürlich sind die Prozentzahlen auf die Beispiel-Aufträge angepasst)
Mein Problem ist, dass ich es einfach nicht auf die Reihe kriege eine zeitliche Unterteilung in 30 Min Intervalle zu erstellen. Als „quick & dirty“ Idee hatte ich überlegt einfach 48x UNION ALL bei meinem SELECT-Statement zu machen…
SELECT mtq, count(mtq), ratio_to_report(count(mtq)) over()
FROM t1
WHERE mtq BETWEEN mtq AND mtq + (1/1440)*29
GROUP BY mtq
UNION ALL
SELECT mtq, count(mtq), ratio_to_report(count(mtq)) over()
FROM t1
WHERE mtq BETWEEN mtq + (1/1440)*30 AND mtq + (1/1440)*59
GROUP BY mtq
etc…
mtq ist der Name meiner Datums-Spalte.
Aber irgendwie will es vorne und hinten nicht funktionieren. Ich hab schon überlegt mit TO_CHAR oder TO_DATE zu arbeiten, aber da komm ich auch nicht weiter. Vorallem habe ich das Problem, dass ich einen Monat (01.04.08-31.04.08) abdecken will; aber die einzelnen Tage irrelevant sind, sondern mich nur die Zeitintervalle interessieren.
Leider habe ich dieses Mal noch nicht einmal eine gute Start-Idee um ein zeitliches Profil der Aufträge zu erstellen.
Habt ihr vielleicht eine Idee?
Liebe Grüße