让我们考虑下表-
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/