首頁 > 資料庫 > mysql教程 > 如何有效率地尋找具有重複日期的表中每個不同ID的最早記錄?

如何有效率地尋找具有重複日期的表中每個不同ID的最早記錄?

Linda Hamilton
發布: 2025-01-17 19:56:14
原創
430 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板