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中文网其他相关文章!