Как сделать SQL-запрос для последней транзакции каждой учетной записи?
Скажем, у меня есть таблица «транзакции», в которой есть столбцы «acct_id», «trans_date» и «trans_type», и я хочу отфильтровать эту таблицу, чтобы у меня была только последняя транзакция для каждой учетной записи. Ясно, что я мог сделать что-то вроде
SELECT acct_id, max(trans_date) as trans_date
FROM transactions GROUP BY acct_id;
но потом я теряю свой trans_type. Затем я мог бы сделать второй вызов SQL со своим списком дат и идентификаторами учетных записей и получить свой trans_type обратно, но это выглядит очень неудобно, так как это означает либо отправку данных назад и вперед на сервер sql, либо это означает создание временной таблицы.
Есть ли способ сделать это с помощью одного запроса, надеюсь, универсальный метод, который будет работать с MySQL, Postgres, SQL Server и Oracle.