首先distinct去重肯定语法没问题,像你说的你加上两个字段distinct后会多,你可以查看下是否数据出问题,你可以select distinct后对内容进行count,查看大于1的数据有哪些(group by不应该重复的内容。比如你要的select 学员`,`校区`,`年级,count(1) from table group by 学员`,`校区`,`年级)然后出来的数据,你再去根据条件查看这些重复的数据是否正确,应该就能找到原因了,一般情况下面你distinct还多要不就是该去重的字段没有查全,要不就是数据有问题。你可以看看具体是那种情况。
另外,对于你的情况我给一个猜测,同一个年级校区,会不会有学员重名。不是很清楚,只是给个方向,你可以查查原因所在