Skip to main content

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;