首頁 >資料庫 >mysql教程 >如何在SQL中選擇具有最小值的唯一行?

如何在SQL中選擇具有最小值的唯一行?

Linda Hamilton
Linda Hamilton原創
2025-01-24 08:11:10552瀏覽

How to Select Unique Rows with the Minimum Value in SQL?

SQL查詢中如何選擇具有最小值的唯一行?

在資料庫中,經常需要提取特定列包含最小值的記錄。假設一個表格包含列'id'、'game'和'point'。若要選擇具有最小'point'值的唯一行(按'game'分組),可以使用以下有效的SQL查詢:

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

此查詢確保只選擇每個唯一'id'的最小'point'值的行。括號內的子查詢計算每個'id'的最小'point'值,並將其儲存在臨時列'MinPoint'中。然後,主查詢根據公共列'id'將原始表('TableName')與這個臨時表連接。

透過篩選條件'tbl1.MinPoint = tbl.Point',查詢確保只傳回'point'值與每個'id'群組內的最小值相符的行。這將產生所需的輸出,其中為每個'game'選擇具有最小'point'值的唯一行。

範例:

考慮以下表格:

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

在該表上執行上述查詢將產生以下輸出:

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

如您所見,該查詢正確地識別了每個'game'的最小'point'值的唯一行。

注意:原始範例資料與結果存在不一致,已修正結果表,使其與SQL語句結果相符。 修正後的結果表顯示了每個id對應的最小point值的行。如果需要依game分組選擇最小point值,則需要修改SQL語句。

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

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