mysql - 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 |
+-------------+------------+
解决方案
你可以这样做:
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;
推荐阅读
- reactjs - Laravel 中的授权 AJAX 请求
- android - 如何在Android中处理写入BluetoothSocket的OutputStream?
- stripe-payments - 当条带计费周期锚点位于第 31 年或闰年时会发生什么?
- excel - 如何解决命名冲突的VB编辑器中代码的自动大写?
- r - 不按字母顺序进行组合
- python - Matplotlib 图到轴
- python-3.x - 使用 Python 在特定行中删除具有特定字符串的列
- html - 为什么带有文本的 div 不适合文本尺寸?
- python - 根据存在 Pandas 添加行
- html - 带有特殊字符\n \r的HTML代码,如何正确显示