首页 >数据库 >mysql教程 >如何使用聚合和 HAVING 检索 MySQL 中匹配的列值?

如何使用聚合和 HAVING 检索 MySQL 中匹配的列值?

Susan Sarandon
Susan Sarandon原创
2025-01-22 21:12:11720浏览

How to Retrieve Matching Column Values in MySQL Using Aggregation and HAVING?

高效检索 MySQL 中匹配的列值

数据库查询通常需要根据特定列值匹配来检索行。当处理大型表时,此任务变得更加复杂。 此示例演示了一种使用 MySQL 聚合函数和 HAVING 子句的有效方法。

让我们考虑一个示例表:

<code>ID | Score
-----
1 | 95
2 | 100
3 | 88
4 | 100
5 | 73</code>

目标是找到 ID 2 和 ID 4 共同的分数。预期结果为 100。

MySQL 的聚合功能提供了一个优雅的解决方案:

<code class="language-sql">SELECT score
FROM t
GROUP BY score
HAVING SUM(id = 2) > 0 AND SUM(id = 4) > 0;</code>

此查询按 score 对数据进行分组。然后,HAVING 子句使用聚合函数来检查每个组中是否存在 ID 2 和 ID 4。 SUM(id = 2) > 0 计算 ID 2 的出现次数,SUM(id = 4) > 0 计算 ID 4 的出现次数。仅返回两个计数都大于零的分数。 这可确保结果中仅包含与两个 ID 关联的分数。

以上是如何使用聚合和 HAVING 检索 MySQL 中匹配的列值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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