首页 >数据库 >mysql教程 >如何在SQL中选择具有最小值的唯一行?

如何在SQL中选择具有最小值的唯一行?

Linda Hamilton
Linda Hamilton原创
2025-01-24 08:11:10562浏览

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