ホームページ > バックエンド開発 > Golang > GORM とスキャンを使用して列値の合計を取得するにはどうすればよいですか?

GORM とスキャンを使用して列値の合計を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-23 23:08:30
オリジナル
980 人が閲覧しました

How to Retrieve the Sum of a Column Value Using GORM and Scan?

GORM を使用した給与列の合計の取得

コードでは、という名前の Postgres テーブルから給与列の合計を取得しようとしています。 GORMを使用した「人」。ただし、現在のアプローチにはいくつかの制限があります。

給与列の合計を正しく取得するには、手動で SQL クエリを作成する代わりに、GORM の Scan 関数を使用することをお勧めします。この方法では、取得する結果を表す構造体を定義できます。

例:

<code class="go">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 SalarySum struct {
        Sum uint `gorm:"column:sum"`
    }

    var salarySum SalarySum
    if err := db.Table("people").Select("SUM(salary) AS sum").Scan(&salarySum).Error; err != nil {
        fmt.Println("error->", err)
    }

    return c.JSON(http.StatusOK, salarySum)
}</code>
ログイン後にコピー

このコード内:

  • SalarySum 構造体は、クエリの予想される結果を定義します。これには、uint 型のフィールド「Sum」が 1 つ含まれています。
  • db.Table("people").Select("SUM(salary) AS sum") 行は、給与列の合計を選択し、それをエイリアスします。
  • Scan(&salarySum) 部分は、結果を給与Sum 構造体にスキャンします。

この更新されたコードは、給与の合計を正しく取得して返す必要があります。 「people」テーブルの列。

以上がGORM とスキャンを使用して列値の合計を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート