首頁 >資料庫 >mysql教程 >如何在 SQL 中檢索每個唯一識別碼具有最小值的行?

如何在 SQL 中檢索每個唯一識別碼具有最小值的行?

DDD
DDD原創
2025-01-24 08:01:12123瀏覽

How to Retrieve Rows with Minimum Values for Each Unique Identifier in SQL?

SQL高效篩選:取得每個唯一識別碼的最小值行

在資料庫管理中,經常需要提取具有唯一值及其對應最小值的記錄。假設有一個表格包含唯一識別符列和關聯值列,目標是從每個唯一識別碼中檢索最小值對應的行。

挑戰

考慮以下表格:

id game point
1 x 5
1 z 4
2 y 6
3 x 2
3 y 5
3 z 8

目標是找出每個唯一game值對應的最小point值的行。預期輸出如下:

id game point
1 z 4
2 y 6
3 x 2

可以使用下列SQL查詢來實現此目標:

<code class="language-sql">SELECT tbl.*
FROM TableName tbl
INNER JOIN (
    SELECT Id, MIN(Point) AS MinPoint
    FROM TableName
    GROUP BY Id
) tbl1 ON tbl1.id = tbl.id
WHERE tbl1.MinPoint = tbl.Point;</code>

解釋

  • 內部查詢計算每個唯一Id的最小Point值,並將結果儲存在衍生表tbl1中。
  • 主查詢依照公用Id列將原始表TableNametbl1連接。
  • 最後,它過濾結果,只包含最小Point值(來自tbl1)與原始表中Point值匹配的行。

透過使用此查詢,您可以有效地擷取按game列分組的具有最小Point值的唯一行。

以上是如何在 SQL 中檢索每個唯一識別碼具有最小值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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