Dire che ho una tabella "transazioni" che ha colonne "acct_id" "trans_date" e "trans_type" e voglio filtrare questa tabella in modo da avere solo l'ultima transazione per ogni account. Chiaramente potrei fare qualcosa comeCome creare una query SQL per l'ultima transazione di ogni account?
SELECT acct_id, max(trans_date) as trans_date
FROM transactions GROUP BY acct_id;
ma poi ho perso il mio trans_type. Potrei quindi fare una seconda chiamata SQL con la mia lista di date e id di account e recuperare il mio trans_type ma che sembra molto cludgy dal momento che significa inviare i dati avanti e indietro al server sql o significa creare una tabella temporanea.
C'è un modo per farlo con una singola query, si spera che un metodo generico funzioni con mysql, postgres, sql-server e oracle.
Questo è il mio preferito. Puoi anche avere la tua clausola where 'NOT EXISTS (SELEZIONA NULL DALLA transazione z WHERE a.acct_id = z.acct_id AND z.trans_date> a.trans_date)' – cjk