通过mybatis-puls查询学生在校成绩的排名情况,问题分析:
- 涉及多表进行查询
- 涉及mysql中的复合函数(AVG())
- 涉及sql相关的排序
解决方案:
- 可以通过@select注解,写相关的sql语句。来获取学生在校的平均成绩的排名
- 也可以通过xml,写相关的sql语句。来获取学生在校的平均成绩的排名
方法一:
@select注解
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
@Mapper
public interface ScoreMapper {
@Select("select rank from\n" +
"(select (@ranknum:=@ranknum+1) as 'rank',avgScore,id,name\n" +
"FROM(\n" +
"select AVG(score.scores) as avgScore ,user.id ,`user`.`name`\n" +
"from score left join user on score.user_id=user.id \n" +
"GROU