分组
通过如下方式可以使用条件构造器构建分组查询。
LambdaTemplate lambda = ...
List<User> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.le(User::getId, 500)
.groupBy(User::getStatus)
.queryForList();
// result 结果集 User 对象中将只有 status 会有值
对应的 SQL
select status from users where id >= 100 and id <= 500 group by status;
使用聚合函数
分组求和
class UserGroupBy{
private String status;
private Integer cnt;
...
}
LambdaTemplate lambda = ...
List<UserGroupBy> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.le(User::getId, 500)
.groupBy(User::getStatus)
.selectAdd(User::getStatus)
.applySelectAdd("count(*) as cnt")
.queryForList(UserGroupBy.class);
对应的 SQL
select status, count(*) as cnt
from users
where id >= 100 and id <= 500
group by status;