Skip to main content
Version: 0.7.x

Aggregate Functions

You can group results selected from SeaORM find with the group_by method. If you wish to further restrict the grouped result set, the having method can help you achieve that.

Group By

The group_by method can take a column of the entity or a complex sea_query::SimpleExpr.

assert_eq!(
cake::Entity::find()
.select_only()
.column(cake::Column::Name)
.group_by(cake::Column::Name)
.build(DbBackend::Postgres)
.to_string(),
r#"SELECT "cake"."name" FROM "cake" GROUP BY "cake"."name""#
);

Having

The having method can take any conditional expressions introduced in the previous section.

assert_eq!(
cake::Entity::find()
.having(cake::Column::Id.eq(4))
.having(cake::Column::Id.eq(5))
.build(DbBackend::MySql)
.to_string(),
"SELECT `cake`.`id`, `cake`.`name` FROM `cake` HAVING `cake`.`id` = 4 AND `cake`.`id` = 5"
);