// 按状态分组统计用户数量
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('status', 'count(*) as user_count').groupBy('status');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper); // 执行查询
// 按状态和类型分组统计用户数量
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('status', 'type', 'count(*) as user_count').groupBy('status', 'type');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 按状态分组,计算每组的平均年龄
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('status', 'avg(age) as avg_age').groupBy('status');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 筛选激活状态的用户,并按类型分组统计
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq('status', 'active').groupBy('type');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 根据动态条件进行分组
String groupByField = 'status'; // 可以是外部传入的参数
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.groupBy(groupByField);
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 结合子查询进行分组统计
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.inSql('id', 'select user_id from user_role where role_id = 1').groupBy('status');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 按状态分组,并筛选平均年龄大于 30 的组
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('status', 'avg(age) as avg_age').groupBy('status').having('avg_age > {0}', 30);
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 按类型分组统计,并按统计数量降序排序
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('type', 'count(*) as user_count').groupBy('type').orderByDesc('user_count');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 按类型分组,仅选择类型和用户数量
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('type', 'count(*) as user_count').groupBy('type');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);
// 结合多表查询进行分组统计
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select('user.type', 'count(order.id) as order_count').leftJoin('order', 'user.id = order.user_id').groupBy('user.type');
List<Map<String, Object>> results = userMapper.selectMaps(queryWrapper);