假设我有一个表“事务”,其中包含“acct_id”、“trans_date”和“trans_type”列,我想过滤这个表,以便我只有每个帐户的最后一笔交易。显然我可以做类似的事情
SELECT acct_id, max(trans_date) as trans_date
FROM transactions GROUP BY acct_id;
但后来我失去了我的 trans_type。然后,我可以使用我的日期列表和帐户 ID 进行第二次 SQL 调用,并取回我的 trans_type,但这感觉非常笨拙,因为这意味着要么将数据来回发送到 sql 服务器,要么意味着创建一个临时表。
有没有办法通过单个查询来做到这一点,希望是一种适用于 mysql、postgres、sql-server 和 oracle 的通用方法。