首页 > 数据库 > mysql教程 > 如何高效地查找具有重复日期的表中每个不同ID的最早记录?

如何高效地查找具有重复日期的表中每个不同ID的最早记录?

Linda Hamilton
发布: 2025-01-17 19:56:14
原创
431 人浏览过

How to Efficiently Find the Earliest Record for Each Distinct ID in a Table with Duplicate Dates?

提取每个唯一ID的第一条记录,处理重复日期

想象一个表(我们称之为 MyTable),其中包含以下列:key_ididrecord_date 和其他列 (other_cols)。 目标是针对每个唯一的 record_date 精确定位包含最早的 id 的行。

标准方法通常假设唯一的record_date值,但我们的数据可能有重复。 使用子查询和联接的复杂查询可能会导致不必要的结果。

更简化的方法使用子查询:

<code class="language-sql">SELECT mt.*
FROM MyTable mt
INNER JOIN (
    SELECT id, MIN(record_date) AS MinDate
    FROM MyTable
    GROUP BY id
) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>
登录后复制

内部子查询通过对数据进行分组,有效地找到每个 record_date 的最早的 MinDate (id)。然后,外部查询将此结果连接回原始表 (MyTable),仅选择 record_date 与子查询中找到的最小日期匹配的行。 这可以有效地检索每个唯一 id 的最早记录,优雅地处理重复日期并避免冗余数据。

以上是如何高效地查找具有重复日期的表中每个不同ID的最早记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

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