首頁 >資料庫 >mysql教程 >如何在SQL中選擇具有特定欄位最小值的不同行?

如何在SQL中選擇具有特定欄位最小值的不同行?

Barbara Streisand
Barbara Streisand原創
2025-01-17 20:15:10620瀏覽

How to Select Distinct Rows with the Minimum Value for a Specific Field in SQL?

選擇具有最早記錄日期的唯一行

假設您有一個表,每個唯一識別碼包含多個條目,並且您只需檢索代表每個識別碼最早記錄日期的唯一行。 這在處理重複的記錄日期時特別有用。

這是一個可以有效解決這個問題的 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>

此查詢分兩步驟進行:

  1. 找出最短日期: 內部查詢 (SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id) 標識每個唯一 record_date 的最小 id

  2. 選擇符合行: 外部查詢將內部查詢的結果與原始表 (MyTable) 連接起來。 它只選擇 MyTable 中的行,其中 idrecord_date 都與內部查詢中找到的最小日期相符。

最終結果僅包含每個唯一識別碼最早record_date的行,消除了具有不同記錄日期的重複行。

以上是如何在SQL中選擇具有特定欄位最小值的不同行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn