Wie erstelle ich eine SQL-Abfrage für die letzte Transaktion jedes Kontos?

Angenommen, ich habe eine Tabelle "Transaktionen" mit den Spalten "acct_id" "trans_date" und "trans_type" und möchte diese Tabelle so filtern, dass ich nur die letzte Transaktion für jedes Konto habe. Klar könnte ich sowas machen

SELECT acct_id, max(trans_date) as trans_date  
FROM transactions GROUP BY acct_id;

aber dann verliere ich meinen trans_type. Ich könnte dann einen zweiten SQL-Aufruf mit meiner Liste von Daten und Konto-IDs durchführen und meinen trans_type zurückbekommen, aber das fühlt sich sehr unübersichtlich an, da es entweder bedeutet, Daten an den SQL-Server hin und her zu senden oder eine temporäre Tabelle zu erstellen.

Gibt es eine Möglichkeit, dies mit einer einzelnen Abfrage zu tun, hoffentlich eine generische Methode, die mit MySQL, PostGres, SQL-Server und Oracle funktionieren würde?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage