SQL ID重复对

问题描述 投票:1回答:1

假设我有两个SQL表(由这个问题组成)

班级

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

StudentInClass

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

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

(显示行以供参考)

StudentId  | ClassId  | Count
-----------------------------
1          |       1  |     2
mysql sql
1个回答
1
投票

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

select StudentId, ClassId, count(*) cnt
from StudentInClass
group by StudentId, ClassId
having count(*) > 1
© www.soinside.com 2019 - 2024. All rights reserved.