Group By
Hint
This article is generated by AI translation.
Use the where builder to construct grouped queries as follows.
LambdaTemplate lambda = ...
List<User> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.le(User::getId, 500)
.groupBy(User::getStatus)
.queryForList();
// In the result, only status is populated on User objects
Equivalent SQL
select status from users where id >= 100 and id <= 500 group by status;
Aggregate functions
Group and sum
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);
Equivalent SQL
select status, count(*) as cnt
from users
where id >= 100 and id <= 500
group by status;