SQL 查詢優化:檢索具有最小值的唯一行
本指南演示了一種高效的 SQL 技術,用於從特定列中提取包含最小值的唯一行。 在處理分組數據時,這通常是必要的,並且需要結合連接和過濾。
考慮以下示例表:
<code class="language-sql">id game point 1 x 5 1 z 4 2 y 6 3 x 2 3 y 5 3 z 8</code>
目標是檢索每個唯一 id
的 point
和 game
,顯示該遊戲的最小 point
值。 預期結果集是:
<code class="language-sql">id game point 1 z 4 2 y 6 3 x 2</code>
以下 SQL 查詢可實現此目的:
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT game, MIN(point) AS min_point FROM TableName GROUP BY game ) AS tbl1 ON tbl1.game = tbl.game AND tbl1.min_point = tbl.point;</code>
以下是查詢的詳細信息:
TableName
(別名為tbl
)與子查詢的結果(別名為tbl1
)結合起來。 point
計算每個唯一 game
的最小值 MIN(point)
,並按 game
對結果進行分組。 結果是一個包含 game
及其對應的最小值 point
.game
和 point
匹配的行。 這會精確選擇每個 point
.game
具有最小 這種優化的查詢避免了不必要的複雜性並直接檢索所需的結果。 與其他方法相比,這是一種更簡潔且通常更快的解決方案。
以上是如何在 SQL 中使用聯結來尋找具有最小值的不同行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!