mysql - 重复的 SQL ID 对

标签 mysql sql

假设我有两个 SQL 表(弥补了这个问题)

Name    |    Id
---------------
Art     |     1
CS      |     2
Math    |     3

学生上课

StudentId  | ClassId
--------------------
1          |       1
3          |       2
1          |       1

现在 StudentId 和 ClassId 应该是唯一的对(我知道可以将其定义为约束,但对于类里面的这个特定问题,这是无关紧要的)。我需要定义一个查询,该查询将显示 studentId、classId 并计算一个学生是否在一个类(class)中出现多次。所以基本上,重复 ID 对的数量。我该怎么做呢?

(显示的行以供引用)

StudentId  | ClassId  | Count
-----------------------------
1          |       1  |     2

最佳答案

这是一个简单的聚合查询,带有一个 having 子句来过滤多次出现的元组:

select StudentId, ClassId, count(*) cnt
from StudentInClass
group by StudentId, ClassId
having count(*) > 1

关于mysql - 重复的 SQL ID 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58584198/

相关文章:

Php随机选择数字

php - 按其他表 ID 过滤表信息

mysql用一个查询计算多种类型

MYSQL 命令获取列标题、位置和排序依据

php - mysqli php 查询更新不工作,不返回错误

MySQL 更新和删除难题

php - 如何访问在另一个 PHP 类中启动的数据库连接?

每天的 SQL 累计总和用每个用户的新余额刷新

mysql - 两个表之间的 SQL 匹配以及列之间的进一步匹配

mysql - error -1054 order 子句中的未知列 e.id