提取每個唯一ID的第一筆記錄,處理重複日期
想像一個表格(我們稱之為 MyTable
),其中包含以下列:key_id
、id
、record_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中文網其他相關文章!