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
列將原始表TableName
與tbl1
連接。 Point
值(來自tbl1
)與原始表中Point
值匹配的行。 透過使用此查詢,您可以有效地擷取按game
列分組的具有最小Point
值的唯一行。
以上是如何在 SQL 中檢索每個唯一識別碼具有最小值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!