Ich versuche, wählen Sie den Maximalwert aus den letzten zwei JahrenPostgresql: Mit einer Fensterfunktion den MAX-Wert von einem Datumsbereich
Zum Beispiel zu wählen, wenn ich eine Tabelle wie folgt:
|person_id | pass_or_fail | timestamp|
|----------|--------------|-----------|
|1234 | 1 | 1990-01-01|
|1234 | 0 | 1995-01-01|
|1234 | NULL | 1995-12-12|
|6789 | 0 | 1990-01-01|
|6789 | 0 | 1991-01-01|
|6789 | 1 | 1995-01-01|
|6789 | 1 | 1996-01-01|
|6789 | 0 | 1997-01-01|
|6789 | NULL | 1997-03-03|
ich folgendes aus meiner Anfrage erhalten mag:
person_id |highest_grade_from_past_two_years | pass_or_fail | timestamp
1234 |1 | 1 | 1990-01-01
1234 |0 | 0 | 1995-01-01
1234 |0 | NULL | 1995-12-12
6789 |0 | 0 | 1990-01-01
6789 |0 | 0 | 1991-01-01
6789 |1 | 1 | 1995-01-01
6789 |1 | 1 | 1996-01-01
6789 |1 | 0 | 1997-01-01
6789 |1 | NULL | 1997-03-03
Wie kann ich schreibe meine Fensterfunktion, um mir dieses Ergebnis?
Die zweite Tabelle oben ist, wie ich meine Abfrageergebnisse aussehen soll. Ich arbeite nur mit einer Tabelle –
beide Tabellen ist das gleiche, ich benutze es zu vermeiden, mit Unterabfrage in Select-Anweisung - es läuft für jede Zeile separat –