首页 >数据库 >mysql教程 >如何用SQL中的最小值检索不同的行?

如何用SQL中的最小值检索不同的行?

Linda Hamilton
Linda Hamilton原创
2025-01-24 08:17:08199浏览

How to Retrieve Distinct Rows with the Minimum Value in SQL?

使用 SQL 提取具有最小值的唯一行

SQL 查询经常涉及根据定义的条件选择特定行。 常见的场景是检索列中具有最小值的行,同时确保仅返回唯一的行。

让我们用这个示例表来说明:

<code>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 的最小 id

<code class="language-sql">SELECT Id, MIN(Point) AS MinPoint
FROM TableName
GROUP BY Id</code>

此子查询生成 id 及其各自的最小 point 值。 然后主查询将此结果与原始表连接起来,过滤匹配最小点的行:

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

查询的输出:

<code>id | game | point
-------+--------+--------
1  | z    | 4
3  | x    | 2
2  | y    | 6</code>

此方法有效地返回包含每个 point 的最小 id 值的唯一行,为后续分析提供干净的数据集。

以上是如何用SQL中的最小值检索不同的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn