检索每个唯一 ID 的最早记录日期的行
处理包含重复 id
值的表,并且需要为每个唯一的 record_date
仅选择具有最早 id
的行可能会很棘手。 当 record_date
值不唯一时,标准方法通常会遇到困难。该解决方案可以有效处理此类场景:
以下 SQL 查询有效地选择所需的行:
<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
的最小值 id
。子查询按 id
对行进行分组,然后使用 MIN()
函数查找每个组内的最小值 record_date
。
然后,外部查询使用 MyTable
和 id
将子查询的结果连接回原始表 (record_date
)。这可确保只有与每个 record_date
的最小 id
匹配的行才会包含在最终结果集中。 这有效地删除了重复项,并仅返回每个唯一 record_date
.id
最早的
以上是如何为表中的每个唯一 ID 选择具有最小 Record_Date 的行?的详细内容。更多信息请关注PHP中文网其他相关文章!