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