我正在尝试从表中选择除最后一行之外的所有分组数据。
+----+--------+--------+ +----+--------+--------+
| id | userID | amount | | id | userID | amount |
+----+--------+--------+ +----+--------+--------+
| 1 | 20 | 400 | | 1 | 20 | 400 |
| 2 | 20 | 200 | | 2 | 20 | 200 |
| 3 | 21 | 100 | => | 3 | 21 | 100 |
| 4 | 11 | 500 | | 4 | 11 | 500 |
| 5 | 11 | 250 | | 6 | 21 | 50 |
| 6 | 21 | 50 |
| 7 | 20 | 100 |
| 8 | 21 | 200 |
+----+--------+--------+
我尝试过使用查询
SELECT *
FROM table
WHERE userID != (SELECT MAX(userID) FROM table)
GROUP
BY userID
但它只获取唯一的一行数据,即使还有更多数据
最佳答案
你没有聚合功能,所以不需要group by
SELECT *
FROM table
WHERE userID != (
SELECT MAX(userID) FROM table
)
这可能发生在 mysql 版本 <5.7 的 mysql 版本> 5.7(默认设置)中,使用 group by 会引发错误
关于mysql - 从表中的分组记录中选择除最后一条记录之外的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408643/