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/34366059/

相关文章:

php - 使用 eloquent 关系 laravel 进行计数查询

mysql - 截断了不正确的日期值 : '02:02:02 am'

mysql - 如何编写连接 3 个表的查询

MySQL 对关联表上的多行进行过滤

sql - 请解释 SQLServer 用于创建检查约束的语法

sql - 使用SQLite在SQL中进行关系划分

mysql - Sql:选择包含一组特定项目的所有篮子

php - 使用变量以 utf8 创建数据库

mysql - 如何并排呈现单表查询的结果

c# - 仅当使用别名时 SqlDataReader.get_Item() 出现 System.IndexOutOfRangeException