Hallo zusammen,
ich bräuchte bitte einen kurzen Denkanstoß. Aufgrund DB Umstellung muss ich alles in PostgreSQL ändern und die bisherige Abfrage
läuft nicht mehr:
select
id as abc,
sum(amount) as def
from “xxx”
where (id, created in (
select id, max(created) from “xxx” group by id)
)
Ziel ist eigentlich “nur” der jeweils letzte Datensatz. Bin über jeden Tipp wirklich dankbar.
P.S. Suchfunktion last / max für Datentyp timestamp hat mir leider nicht geholfen.
Da scheint eine Klammer zu fehlen: “where (id, created in (” , sollte wohl “where (id, created) in (” sein
Andreas
Manchmal ist einfach Zeit für Feierabend. Vielen vielen Dank für den Hinweis!!!
2013? Lang ists her. Thread passt aber noch. Nur Allgemein gefragt, geht die max(created) auf Milli Sekunden?
Ich habe viele Datensätze mit identischem Zeitstempel. Angezeigt werden nur die Sekunden. Wie kann ich den
tatsächlich letzten Datensatz finden?
Viele Grüße
Timestamps speichern auch die Millisekunden. Wenn da mehrere gleich sind kann es aber nur einen maximalen geben.
Sowas! Hab gar keine Mail ob der Antwort bekommen!?! Danke erstmal!! Hmmm scheint in unserer DB werden dann Buchungssätze wohl anscheinend gleichzeitig ausgelöst. Mit
select * from xxx where
( kunde, created )
in ( select kunde, max (created) from xxx
where date(created) < ‘2015-01-01 00:00’::timestamp
and date(created) >= ‘2014-01-01 00:00’::timestamp
group by kunde )
bekomme ich tatsächlich doppelte Einträge. Bin grad nur zu doof zusätzlich eine max() auf die fortlaufende Buchungsnummer zu erstellen.