mysql - 如何在MySql中返回具有相同列值的行

标签 mysql sql relational-division

让我们考虑下表-

ID Score
1  95

2  100

3  88

4  100

5  73

我是一个十足的 SQL 菜鸟,但是如何返回包含 ID 2 和 4 的分数? 因此它应该返回 100,因为它同时出现在 ID 2 和 4 中

最佳答案

这是“集合内集合”查询的示例。我建议使用 having 子句进行聚合,因为它是最灵活的方法。

select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
       sum(id = 4) > 0     -- has id = 4

这所做的是按分数聚合。然后 having 子句的第一部分 (sum(id = 2)) 计算每个分数有多少个“2”。第二个是数“4”的个数。仅返回“2”和“4”的分数。

关于mysql - 如何在MySql中返回具有相同列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198509/

相关文章:

c# - 在 SQL 语句中排序之前是否始终首选 LINQ?

mysql - 在单个查询中选择昨天的最后一条记录和今天的所有记录

c# - 使用组合键从两个表中选择数据

java - IO 与数据库 : Which is faster?

sql - 将 SQL CONTAINS 包装为表达式?

sql - 选择列中包含列表中所有值的所有行

mysql - 如何在 MySql 中返回具有相同列值的行

mysql - 如何在MySql中返回具有相同列值的行

mysql - JSON_提取错误 : Invalid JSON text in argument 1 to function json_extract: "Missing a name for object member."

php - MySQL REGEXP 仅匹配边界词,但不包括 html 标签中的匹配