假设我有两个SQL表(用于这个问题)
班级

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

学习类
StudentId  | ClassId
--------------------
1          |       1
3          |       2
1          |       1

现在StudentId和ClassId应该是唯一的对(我知道可以定义为约束,但是对于类中的这个特定问题,这是不相关的)。我需要定义一个查询,如果一个学生在一个类中出现不止一次,则该查询将显示studentId、classId和count。所以基本上,重复的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/

10-11 02:04