我正在使用 PostgreSQL 和 golang 编写后端。 我在获取薪水列总和时遇到问题。
这是我的代码:
func GetSalarySum(c echo.Context) error {
db, err := gorm.Open("postgres", "host=localhost port=5433 user=postgres dbname=testone password=root sslmode=disable")
checkError(err)
defer db.Close()
type UpdatedAddress struct {
City string `json:"city;"`
State string `json:"state;"`
Pin string `json:"pin;"`
}
type UpdatedContact struct {
ID uint `json:"id;"`
Mobile string `json:"mobile;"`
Email string `json:"email;"`
}
type NewPerson struct {
ID int `gorm:"primary_key:true;"`
Firstname string `json:"firstname;"`
Lastname string `json:"lastname;"`
Gender string `json:"gender;"`
Salary uint `json:salary;`
Age uint `json:"age"`
Address UpdatedAddress `json:"address"`
Contact UpdatedContact `json:"contact"`
}
// var n []NewPerson
n := new(NewPerson)
if err := c.Bind(n); err != nil {
fmt.Println(err)
return err
}
// var sum uint
query := "SELECT SUM(salary) FROM people"
if err := db.Table("people").Select(query).Rows().Error; err != nil {
fmt.Println("error->", err)
}
fmt.Println("sum->", n)
return c.JSON(http.StatusOK, n)
} //SELECT SUM(salary) FROM people
........................
最佳答案
你仍然在 golang 中使用 struct
并在 SQL
中使用 as
type NResult struct {
N int64 //or int ,or some else
}
func SumSame() int64 {
var n NResult
db.Table("table").Select("sum(click) as n").Scan(&n)
return n.N
}
关于postgresql - 如何从表 GORM 中获取工资列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53757955/