问题:
给定一个包含 pid、timestamp 列的表、cost和rid,任务是检索每个唯一rid的最新行的pid,考虑到pid是自增主键。
原始查询:
以下查询检索最大时间戳和对应的 Rid 值,但没有正确返回最新的pid:
SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid
解决方案:
为了有效地获取每次rid的最新pid,需要结合多种技术:
识别最大时间戳和对应的rid值:
SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
根据最大时间戳结果连接原始表:
SELECT t.pid, t.cost, t.timestamp, t.rid FROM theTable AS t JOIN (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt ON t.rid = maxt.rid AND t.timestamp = maxt.maxt
这个修改后的查询有效地检索了 pid、成本、时间戳,并删除了原始中每个唯一删除的最新行表。
以上是如何使用 MySQL 的'MAX()”和'GROUP BY”高效检索每个唯一'rid”的最新'pid”?的详细内容。更多信息请关注PHP中文网其他相关文章!