首页 > 数据库 > mysql教程 > 如何在 MySQL 中查找特定 ID 上的重复分数值?

如何在 MySQL 中查找特定 ID 上的重复分数值?

Barbara Streisand
发布: 2025-01-22 20:56:10
原创
355 人浏览过

How to Find Duplicate Score Values Across Specific IDs in MySQL?

在MySQL中检索重复列值的技巧

在MySQL数据库中,您可能需要检索在特定列中共享相同值的那些行。考虑以下表格,其中“分数”列包含与不同“ID”关联的值:

ID 分数
1 95
2 100
3 88
4 100
5 73

假设您想检索在“ID”等于2和4的两行中都出现的分数。

解决方案:

要使用MySQL实现此目的,可以使用以下查询:

<code class="language-sql">SELECT score
FROM t
GROUP BY score
HAVING COUNT(*) > 1 AND SUM(CASE WHEN id = 2 THEN 1 ELSE 0 END) > 0 AND SUM(CASE WHEN id = 4 THEN 1 ELSE 0 END) > 0;</code>
登录后复制

此查询执行以下步骤:

  1. 分组 (GROUP BY): 它根据“分数”列对行进行分组。
  2. *计数 (COUNT()):** 它计算每个组中的行数,确保只返回重复的分数。
  3. 条件计数 (SUM(CASE WHEN ... END)): 它分别计算每个组中ID为2和ID为4的行数。
  4. HAVING 子句: HAVING子句确保只返回分数计数大于1,并且ID为2和ID为4的计数都大于0的分数。

在本例中,结果将是:

<code>分数
100</code>
登录后复制

此查询有效地检索在“ID”等于2和4的两行中都出现的分数值。 改进后的查询更加清晰地表达了筛选条件,避免了潜在的逻辑错误。

以上是如何在 MySQL 中查找特定 ID 上的重复分数值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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