首页 > 解决方案 > MYSQL - 从每个不同的 id 获取最后一个结果

问题描述

我试图获得表上每个不同帐户的最后结果(余额)(示例如下)。我尝试使用GROUP BY但它返回找到的第一行。

我的预期结果是他返回第 4 行(帐户 2 的最后余额)和第 5 行(帐户 1 的最后余额),而不是返回第 1 行和第 3 行(每个帐户的第一个余额)

使用的 SQL:

select * from sample_table group by account_id;

样品表:

+-------------+------------+
| id | account_id | balance|
+----+------------+--------+
|  1 |          1 | 100.00 |
|  2 |          1 | 150.00 |
|  3 |          2 |  50.00 |
|  4 |          1 | 130.00 |
|  5 |          2 |  70.00 |
+-------------+------------+

标签: mysql

解决方案


你可以这样做:

SELECT t1.*
FROM sample_table t1 LEFT JOIN sample_table t2
 ON (t1.account_id = t2.account_id AND t1.id < t2.id)
WHERE t2.id IS NULL;

推荐阅读