postgresql - 如何从表 GORM 中获取工资列的总和

标签 postgresql go go-gorm go-echo

我正在使用 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/

相关文章:

debugging - 调试器数据库应用程序和查询

sql - 从表中删除重复项并将引用行重新链接到新的主表

javascript - 为什么这个简单的 Go 程序比对应的 Node.js 程序慢?

ssl - 如何在不强制断开连接的情况下使用 Go TLS 手动验证客户端证书?

sql - 处理以下查询的有效方法?在 SQLServer 或 PostgreSql 中(自连接)

xml - 节点 N 的 Go XML Unmarshalling 属性 X

database - Gorm 只返回一个而不是多个结果

database - 如何使用 Gorm 预加载

go - 无法创建与 gorm 的外键关系,其中字段名称!= 类型名称

.net - PostgreSQL 服务停止工作