mysql - 如何在MySQL中选择某些列范围的所有最后一行

标签 mysql greatest-n-per-group

我需要一个查询来选择某些列范围的最后一行。

示例,整个表格:

----------------------
| ID | NAME | FOO_ID |
|--------------------|
| 1  | jQue |   2    |
| 2  | Prot |   2    |
| 3  | Node |   2    |
| 4  | Moo  |   1    |
| 5  | Scri |   1    |
----------------------

查询返回的行,返回FOO_ID列范围中的所有“最后一行”:

----------------------
| ID | NAME | FOO_ID |
|--------------------|
| 3  | Node |   2    |
| 5  | Scri |   1    |
----------------------

有人可以帮助我如何编写此查询吗?

最佳答案

SELECT a.* 
FROM table_1 a
INNER JOIN (SELECT foo_id, max(id) as max_id FROM table_1 GROUP BY foo_id)b
ON b.max_id = a.id

关于mysql - 如何在MySQL中选择某些列范围的所有最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190398/

相关文章:

mysql - 无法选择没有重复项的最新记录

sql - FILTER 中不允许使用聚合函数

mysql - 为什么Mysql的Group By和Oracle的Group by行为不同

mysql - 寻找一种更简洁的方法来运行必须检查多个 "AND"条件的查询

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 在mysql中选择具有最大时间戳的多条记录

sql - 如何在一行中获取 postgreSQL 中的 2 个最新值?

mysql - 如何从 SQL 中的相关表中获取单个结果?

mysql - SLEEP , CAST , REGEXP 查询解释

mysql - 将行转置为 MySQL 中的列