Oracle SQL-Abfrage: Neueste Werte pro Gruppe basierend auf der Zeit abrufen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Rufen Sie die Zeile mit dem Maximalwert für eine Spalte ab 34 Antworten

Ich habe die folgende Tabelle in einer Oracle-DB

id     date              quantity
1      2010-01-04 11:00  152
2      2010-01-04 11:00  210
1      2010-01-04 10:45  132
2      2010-01-04 10:45  318
4      2010-01-04 10:45  122
1      2010-01-04 10:30  1
3      2010-01-04 10:30  214
2      2010-01-04 10:30  5515
4      2010-01-04 10:30  210

Jetzt möchte ich den neuesten Wert (und seine Zeit) pro ID abrufen. Beispielausgabe:

id     date              quantity
1      2010-01-04 11:00  152
2      2010-01-04 11:00  210
3      2010-01-04 10:30  214
4      2010-01-04 10:45  122

Ich kann einfach nicht herausfinden, wie ich das in eine Abfrage einbauen soll ...

Zusätzlich wären folgende Optionen schön:

Option 1: Die Abfrage sollte nur Werte aus den letzten XX Minuten zurückgeben.

Option 2: Die ID sollte mit Text aus einer anderen Tabelle verknüpft werden, die ID und ID-Name enthält. Die Ausgabe für id sollte dann lauten: id-idname (z. B. 1-testid1).

vielen dank für jede hilfe!