假设我有一个名为studens的表。
我想知道有多少学生至少获得2次重复分数。 请帮帮我,谢谢。
我期望的结果是:Jonh有100次得分,James有80次得分,Julia有50次得分2次。因此,获得重复分数至少2次的学生数量为3(Jonh,Jam和Julia)。
答案 0 :(得分:2)
select count(*) from
(
select name
from your_table
group by name, score
having count(*) > 1
) x
答案 1 :(得分:1)
根据编辑,您的查询将是:
select distinct name
from students
group by name, score
having count(*) > 1;
您可以通过以下方式查看得分和计数:
select name, score, count(*)
from students
group by name, score
having count(*) > 1;
顺便说一句,第一个查询是select distinct
适合group by
的极少数时间之一。我认为第二个查询提供了更多信息。
答案 2 :(得分:1)
假设学生每个科目只有一个分数(即name, subject
是唯一的):
SELECT COUNT(DISTINCT t1.name)
FROM scores t1
INNER JOIN scores t2
ON t1.name = t2.name
AND t1.subject <> t2.subject
AND t1.score = t2.score
<强> SQLFiddle 强>