在 GORM 中,可以使用 Select 方法进行条件查询,并使用 Sum 方法统计另一个字段的数据总和。

假设有一个 User 模型,其中有 nameage 字段,现在要查询年龄大于等于 18 岁的用户的年龄总和,可以使用如下代码:

var totalAge int64
db.Select("sum(age)").Where("age >= ?", 18).Find(&User{}).Pluck("sum", &totalAge)

在上述代码中,db 是一个 *gorm.DB 对象,表示数据库连接。Select("sum(age)") 表示要查询并统计 age 字段的总和。Where("age >= ?", 18) 表示筛选出年龄大于等于 18 岁的用户。Find(&User{}) 表示执行查询,并将结果存储到 User 模型中。Pluck("sum", &totalAge) 表示将查询结果中的 sum 字段的值赋值给 totalAge 变量。

需要注意的是,上述代码中的 User{} 部分是为了指定查询结果的类型,具体情况可以根据实际需求进行调整。另外,如果要查询的字段是字符串类型,可以使用 sum(CONVERT(age, UNSIGNED)) 替代 sum(age) 进行类型转换

gorm 按条件查询并统计另一个字段的数据总和

原文地址: http://www.cveoy.top/t/topic/h5n1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录