假设有一个表名为'mytable',有三个字段:'id'、'category' 和 'value',其中 'id' 是自增主键。

要查询不同分类下的倒数第二条记录,可以使用以下 SQL 语句:

SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY category ORDER BY id DESC) AS rn
  FROM mytable
) t
WHERE t.rn = 2

解释一下上述语句的含义:

  1. 内部查询使用了窗口函数'ROW_NUMBER()',对每个分类下的记录进行编号,按照'id' 字段的倒序排列。
  2. 外部查询筛选出了编号为 2 的记录,即每个分类下的倒数第二条记录。

值得注意的是,如果某个分类下的记录不足两条,那么该分类不会出现在查询结果中。如果需要包含这些分类,可以使用'LEFT JOIN' 等关联查询方式。

MySQL 查询不同分类下的倒数第二条记录

原文地址: http://www.cveoy.top/t/topic/nwT5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录