首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL快速检索每组中的最后一条记录

可以通过以下两种方法实现:

  1. 子查询法:

使用子查询可以将每组中的最后一条记录检索出来。具体步骤如下:

首先,根据分组依据将数据进行分组,并使用MAX函数获取每组中的最后一条记录的标识列的最大值。然后,在主查询中,使用这些最大值作为筛选条件,从原始表中检索出最后一条记录。

示例查询语句:

代码语言:txt
复制
SELECT t1.*
FROM your_table t1
INNER JOIN (
  SELECT group_column, MAX(id) AS max_id
  FROM your_table
  GROUP BY group_column
) t2 ON t1.group_column = t2.group_column AND t1.id = t2.max_id;

上述示例中,your_table是原始表,group_column是分组依据的列,id是标识列。

  1. 窗口函数法:

MySQL 8.0及以上版本支持窗口函数,通过使用ROW_NUMBER()函数和PARTITION BY子句,可以为每个分组中的记录分配一个序号。然后,在主查询中,选择序号为1的记录,即每组中的最后一条记录。

示例查询语句:

代码语言:txt
复制
SELECT *
FROM (
  SELECT *,
         ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY id DESC) AS row_num
  FROM your_table
) t
WHERE t.row_num = 1;

上述示例中,your_table是原始表,group_column是分组依据的列,id是标识列。

以上是两种常用的方法来快速检索MySQL中每组中的最后一条记录。对于MySQL的其他问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券