Gorm 单表查询 分组后统计,并按照指定的格式输出

直接上代码:

type AppraiseCount struct {
	AppraiseName string `json:"appraise_name"`
	Count        int    `json:"count"`
}

type Appraise struct {
	AccountID  int64  `json:"account_id" gorm:"primary_key;type:INT(10) UNSIGNED NOT NULL"`  //被评论者
	AppraiseID int64  `json:"appraise_id" gorm:"primary_key;type:INT(10) UNSIGNED NOT NULL"` //评论者
	Name       string `json:"name"`                                                          //评论标签名称
	Code       int    `json:"code" gorm:"primary_key;type:INT(10) UNSIGNED NOT NULL"`        //标签Code
}

ap := make([]AppraiseCount,0)

re := conn.Table("appraises").Select("name as appraise_name,count(*) as count").Where("account_id = ? ",accountid).Group("name").Scan(&ap)
	if re.Error!= nil{
		return nil,re.Error
	}

从表名为 :“appraises” 的表中查询数据,按照“name”分组,之后统计,获取"appraises"表的name字段,将统计后的数字赋给“count”,最后将结果输出到指定的“ap ”结构中。
其中要注意:字段的命名方式要符合MySQL的命名方式。没错我说的是

AppraiseName string json:"appraise_name"

"name as appraise_name

成功!

你可能感兴趣的:(Gorm 单表查询 分组后统计,并按照指定的格式输出)