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

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

Linda Hamilton
发布: 2025-01-24 08:11:10
原创
538 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板