首页 > 数据库 > mysql教程 > 如何获取 MySQL 中每个唯一 RID 的最新行 PID?

如何获取 MySQL 中每个唯一 RID 的最新行 PID?

Patricia Arquette
发布: 2025-01-04 07:12:33
原创
154 人浏览过

How to Fetch the Latest Row's PID for Each Unique RID in MySQL?

使用 MAX() 和 GROUP BY 获取每个组的最新行

考虑一个场景,其中您有一个包含时间戳、成本、rid 等列的 MySQL 表您的目标是检索每个唯一的 Rid 的最新行的 pid。

您尝试使用以下命令进行此操作query:

SELECT MAX(timestamp),rid,pid FROM theTable GROUP BY rid
登录后复制

但是,返回的 pid 值与最大时间戳不对齐。这是因为 GROUP BY 考虑了 SELECT 子句中的所有列,并为每个组选择第一个匹配的行。

要纠正这个问题,我们需要确定每个组的 Rid 和最大时间戳。我们可以使用子查询来完成此操作:

SELECT rid, MAX(timestamp) AS ts
FROM theTable
GROUP BY rid
登录后复制

此查询的结果将如下所示:

rid | ts
-----|-----
1    | 2011-04-14 01:06:06
2    | 2011-04-14 01:05:41
3    | 2011-04-14 01:14:14
登录后复制

现在,我们可以使用 rod 将原始表与此子查询连接起来和时间戳,以检索所需的 pid 值:

SELECT theTable.pid, theTable.cost, theTable.timestamp, theTable.rid
FROM theTable
INNER JOIN 
(
    SELECT rid, MAX(timestamp) AS ts
    FROM theTable
    GROUP BY rid
) AS maxt
ON (theTable.rid = maxt.rid AND theTable.timestamp = maxt.ts)
登录后复制

此查询的结果将为您提供 pid、成本、时间戳和删除每个唯一删除的最新行。

以上是如何获取 MySQL 中每个唯一 RID 的最新行 PID?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板