Ich habe eine Tabelle in Oracle 10g DB-Engine, die Aufzeichnungen von Service-Operationen enthält. Die Anforderung besteht darin, die Verarbeitungszeit jeder Serviceanforderung zu berechnen. Jede Dienstanforderung kann mehrere Datensätze erzeugen, von denen jeder einen Schritt in dem Prozess darstellt. Also habe ich eine Tabelle mit den folgenden Spalten:Wie kann ich mithilfe von Oracle SQL Datensätze gruppieren und Berechnungen zwischen den ersten und letzten Datensätzen in jeder Gruppe durchführen?
ID
CREATED_ON
SERVICE_OPERATION
RESULT
FK_SERVICE_REQUEST_ID
wo die letzte Spalte die Kennung der Serviceanforderungen ist.
Wie kann ich den Unterschied zwischen CREATED_ON
des ersten und letzten Datensatzes in jeder durch FK_SERVICE_REQUEST_ID
identifizierten Gruppe berechnen? Bin ich besser dran:
SELECT FK_SERVICE_REQUEST_ID, CREATED_ON, SERVICE_OPERATION, RESULT FROM TABLE ORDER BY FK_SERVICE_REQUEST_ID, ID;
und ein paar Tricks in Excel? Wenn ja, wie kann ich dies in Excel erreichen?
Was ist das Feld, das die Reihenfolge der Datensätze bestimmt, den ersten und letzten Datensätze zu bestimmen? Ordnen wir nach der ID, wobei die kleinste Nummer der "erste" Datensatz und die größte Nummer der "letzte" Datensatz ist? – Lock
Nun ID sollte ziemlich stabil sein. Ich kann mir kein Szenario vorstellen, in dem ein späterer Schritt mit einem späteren Zeitstempel mit einer niedrigeren ID generiert würde. – Max