mybatis-plus使用聚合函数查询平均分

mybatis-plus使用聚合函数Avg查询平均分时,返回值是BigDecimal,这一点需要注意,不能直接使用Double或float来接收返回值,下面是使用示例:

    public Double getAvgStore(List ids) {
        
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.in("fit_id", ids)
                .select("AVG(COALESCE(total_score, 0)) AS avg_score");
        List> resultList = baseMapper.selectMaps(queryWrapper);
        if (resultList == null || resultList.isEmpty()) {
            return 0.0;
        }

        Map result = resultList.get(0);
        BigDecimal avgScore = (BigDecimal) result.get("avg_score");
        // 转换为 Double
        return avgScore != null ? avgScore.doubleValue() : 0.0;
    }

你可能感兴趣的:(mybatis)