2016-09-22 4 views
-2

Alle, ich brauche etwas Hilfe bei einer Abfrage zu schreiben, hier die Daten snipped ist ...Oracle analytische Abfrage

TABLE_NAME        SIZE_BYTES  DATE 
---------------------------------------- --------------- --------- 
TABLE_A         346,817,560,576 17-SEP-16   
TABLE_A         346,817,560,576 18-SEP-16   
TABLE_A         369,046,323,200 19-SEP-16   
TABLE_A         413,623,386,112 20-SEP-16   
TABLE_A         466,840,715,264 21-SEP-16 
TABLE_B         42895409152  17-SEP-16 
TABLE_B         42962518016  18-SEP-16 
TABLE_B         43163844608  19-SEP-16 
TABLE_B         43365171200  20-SEP-16 
TABLE_B         43566497792  21-SEP-16  

17-SEP-2016 die Basislinie ist und das Wachstum wird pro Tag berechnet, usw. 19-SEP-16-Daten wuchsen, indem 19-SEP-2016 size_bytes weniger 18-SEP-16 size_bytes genommen wurden.

Was ich hoffe ist zu erreichen, um die Daten in diesem Format

TABLE_NAME DATE  SIZE_DELTA 
------------- ----------- -------------- 
TABLE_A  17-SEP-16 346,817,560,576 
       18-SEP-16 0 
       19-SEP-16 22,228,762,624 
       20-SEP-16 44,577,062,912 
       21-Sep-16 53,217,329,152 
TABLE_B  17-Sep-16 42895409152 
       18-Sep-16 67108864 
       19-Sep-16 201326592 
       20-Sep-16 201326592 
       21-Sep-16 201326592 
+0

?? Was meinst du mit "size_bytes" als eine durch Komma getrennte Folge von vier verschiedenen Zahlen? (Und was auch immer du damit meinst, warum ist die zweite Reihe in der AUSGABE, Tabelle! Für 18-SEP-16, nur eine 0 und nicht 0,0,0,0?) – mathguy

Antwort

2

Verwenden LAG Funktion: https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions082.htm#SQLRF00652

SELECT table_name, date, 
     size_bytes - lag(size_bytes, 1, 0) 
        OVER (partition by table_name order by date) As SIZE_DELTA 
FROM tablename; 
+0

Das war's! krokodiko, danke für eine schnelle Antwort, – archiver

+0

Wie funktioniert die Lösung mit den OP-Eingaben? Bedeutung, die durch Komma getrennten Zahlenfolgen? – mathguy

+0

@mathguy Ich denke, dass es sehr gut für ihn funktioniert, weil OP die Antwort akzeptiert und sich dafür bedankt hat. – krokodilko