Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengira Jumlah Lajur Menggunakan GORM dan Imbas di Golang?

Bagaimana untuk Mengira Jumlah Lajur Menggunakan GORM dan Imbas di Golang?

Susan Sarandon
Lepaskan: 2024-10-24 02:31:29
asal
589 orang telah melayarinya

How to Calculate Sum of a Column Using GORM and Scan in Golang?

Mengira Jumlah Lajur Gaji dalam Jadual GORM

Bekerja dengan pangkalan data hubungan seperti PostgreSQL menggunakan Golang selalunya melibatkan pengambilan nilai agregat. Dalam kes ini, mengira jumlah lajur, seperti lajur gaji, adalah tugas biasa.

Kod dan Masalah Awal

Kod yang disediakan cuba mengira jumlah lajur gaji daripada jadual 'orang' tetapi menghadapi ralat. Ia menggunakan penyataan SELECT dengan SUM(gaji) untuk mendapatkan semula keputusan dan mengikat nilai kepada struct NewPerson. Walau bagaimanapun, pendekatan ini tidak betul kerana NewPerson tidak mempunyai medan gaji dan pertanyaan sedang cuba untuk memetakan keputusan terus ke struct.

Kod Semakan menggunakan Scan

Untuk menyelesaikan isu ini, pendekatan berbeza diperlukan. Golang menyediakan fungsi Imbasan, yang membolehkan pembangun mendapatkan semula hasil pertanyaan dan memetakannya kepada struktur data tersuai. Berikut ialah versi semakan kod yang menggunakan Imbasan:

<code class="go">type NResult struct {
    Salary int64 // or int, depending on the data type
}

func GetSalarySum(c echo.Context) error {
    db, err := gorm.Open("postgres", "...")
    checkError(err)
    defer db.Close()

    query := "SELECT SUM(salary) FROM people"

    var result NResult
    if err := db.Table("people").Raw(query).Scan(&result).Error; err != nil {
        fmt.Println("error->", err)
    }

    return c.JSON(http.StatusOK, result)
}</code>
Salin selepas log masuk

Dalam kod ini, kami mentakrifkan NRresult struktur tersuai dengan medan Gaji tunggal jenis int64 atau int, bergantung pada jenis data lajur gaji . Kami menggunakan kaedah Raw untuk melaksanakan SELECT SUM(gaji) FROM pertanyaan orang secara langsung, dan fungsi Scan untuk mendapatkan semula keputusan dan memetakannya ke NRresult struct.

Kod yang disemak ini mengambil semula jumlah gaji dengan betul lajur dan mengembalikannya sebagai respons JSON.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Lajur Menggunakan GORM dan Imbas di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan