GORM Group() 函数查询分组:使用方法和示例
在使用 GORM 包的 Group() 方法进行查询分组时,得到的结果是按照分组条件进行分组,并返回每个分组的结果。
下面是一个使用 GORM 包的 Group() 方法进行查询分组的示例:
type User struct {
ID int
Name string
Age int
}
// 查询用户表,根据年龄分组,并统计每个分组中的用户数量
func GroupByAge() {
var result []struct {
Age int
Count int
}
db.Model(&User{}).
Select('age, count(*) as count').
Group('age').
Order('age').
Scan(&result)
for _, r := range result {
fmt.Printf('Age: %d, Count: %d
', r.Age, r.Count)
}
}
在上面的示例中,我们定义了一个 User 结构体,并创建了一个名为 GroupByAge() 的函数。函数中使用 GORM 包的 Group() 方法进行查询分组。
首先,我们定义一个 result 切片,切片元素的结构体中包含了 Age 和 Count 两个字段,用于保存分组结果。
然后,使用 db.Model() 方法指定要查询的模型,这里是 User{},并使用 Select() 方法指定要查询的字段,这里是 age 和 count(),其中 count() 是用于统计每个分组中的用户数量。
接下来,使用 Group() 方法指定要分组的字段,这里是 age,并使用 Order() 方法指定结果的排序方式。
最后,使用 Scan() 方法将查询结果保存到 result 切片中,并遍历 result 输出每个分组的 Age 和 Count。
这样,我们就可以通过 GORM 包的 Group() 方法进行查询分组,并得到分组的结果。
原文地址: https://www.cveoy.top/t/topic/mbBb 著作权归作者所有。请勿转载和采集!