Oracle SQL - Datenausgabe zur vollen Stunde

sqlrosaki

Grünschnabel
Hallo, ich bin SQL-Anfänger und stehe vor folgender Aufgabe:

SQL Oracle

Aus gegebener Tabelle möchte ich jeweils den letzten Wert aus jeder vergangenen Stunde abfragen.

Tabelle:
ID Zeit Wert
1 01.11.2008 00:01:00 12
2 01.11.2008 00:10:34 14
3 01.11.2008 00:50:12 24
4 01.11.2008 01:20:25 13
5 01.11.2008 01:45:59 17
6 01.11.2008 02:30:25 9
7 01.11.2008 02:53:59 14

Das Ergebnis der Abfrage soll wie folgt ausehen:
ID Zeit Wert
3 01.11.2008 01:00:00 24
5 01.11.2008 02:00:00 17
7 01.11.2008 03:00:00 14

Welcher SQL-Guru kann mir hierfür die SQL-Anweisung verraten?
Vielen Dank im Voraus bereits für Eure Hilfe!

Gruß,
sqlrosaki
 
Hallo,

willkommen in der SQL-Welt ;o)

ich würds so machen:

SQL:
 SELECT
   id
 , hour_
 , wert
 FROM
 (
     SELECT
     id
     , datum
     ,to_char(datum, 'DD.MM.YYYY HH24') hour_
     ,  Dense_Rank() over  (PARTITION BY extract(HOUR FROM datum) ORDER BY wert DESC ) rang
     , wert
     FROM t_tp_time_test
 )
 WHERE rang = 1
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank für die schnelle Hilfe.

Ich werde den Abfrage-Code sofort ausprobieren.
Ausserdem muss ich leider feststellen, dass ich noch jede Menge über SQL für Oracle lernen kann.

Gruß
sqlrosaki
 

Neue Beiträge

Zurück