2017-04-12 2 views
0

i Tabelle haben:Oracle auswählen, wenn der Wert kleiner als vor

enter image description here

wie i ID Form tun wählen diese Tabelle, wenn der Wert nach weniger als vorherige Wert (angestrebtes Ergebnis ID = B2 und C1). Danke Ihnen

+1

Auf welcher Bestellbasis? Sie wissen, dass in RDBMS eine Tabelle eine ungeordnete Reihe von Zeilen ist. Sie müssen eine Reihenfolge angeben, auf der eine Zeile gesagt wird ** vor oder nach ** einem anderen – GurV

+0

Auftrag von TIME col, Sir – JimmyN

+1

Es gibt 'LAG' und' LEAD' Funktionen in Oracle, mit denen Sie mehr als abfragen können eine Reihe in einer Tabelle auf einmal. – Nitish

Antwort

1

Sie können die Fensterfunktion lead für verwenden, um den Wert der letzten Zeile abzurufen und zu überprüfen, ob der Wert der aktuellen Zeile kleiner ist. Sie können auch lead auf ähnliche Weise verwenden, um den Wert aus der nächsten Zeile zu erhalten.

select distinct ID 
from (
    select t.*, 
     lag(value) over (
      partition by ID order by time 
      ) as last_value 
    from your_table t 
    ) t 
where value < last_value; 
+0

Sehr vielen Dank, das ist was ich will – JimmyN

+0

@JimmyN - Gern geschehen – GurV

Verwandte Themen