Rumah >pembangunan bahagian belakang >Golang >Pengagregatan bersarang dalam pertanyaan Ent

Pengagregatan bersarang dalam pertanyaan Ent

PHPz
PHPzke hadapan
2024-02-09 09:36:201191semak imbas

Ent 查询中的嵌套聚合

Editor PHP Apple akan memperkenalkan anda kepada "Penggabungan Bersarang dalam Pertanyaan Ent" dalam artikel ini. Dalam pertanyaan dan analisis data, pengagregatan bersarang ialah teknik berkuasa yang boleh melaksanakan berbilang peringkat operasi pengagregatan dalam satu pertanyaan. Dengan menggunakan pengagregatan bersarang, kami boleh menjalankan analisis data yang mendalam dengan lebih fleksibel dan mendapatkan hasil yang lebih tepat. Artikel ini akan menerangkan secara terperinci apa itu pengagregatan bersarang dan cara melaksanakan operasi pengagregatan bersarang dalam rangka kerja Ent untuk membantu pembaca memahami dan menggunakan teknologi ini dengan lebih baik.

Kandungan soalan

Bagaimana untuk menulis pernyataan sql mudah ini menggunakan kod yang dihasilkan oleh ent?

select max(t.sum_score) from
                             (select sum(score) as "sum_score"
                              from matches
                              group by team) as t

Saya cuba menggunakan bendera ciri pengubah suai sql tersuai yang diterangkan di sini, tetapi saya tidak tahu cara mengakses medan sum_score dari luar pengubah suai.

Penyelesaian

Ini jawapan daripada pemilik projek ent a8m (Terima kasih!)

client.Match.Query().
    Aggregate(func(s *sql.Selector) string {
        const as = "max_score"
        s.GroupBy(match.FieldTeam).OrderBy(sql.Desc(as)).Limit(1)
        return sql.As(sql.Sum(match.FieldScore), as)
    }).
    IntX(ctx)

Anda boleh mendapatkan jawapan penuh di sinidi repositori github rasmi. Saya terpaksa menambah sql.desc(as) untuk mendapatkan nilai maksimum.

Atas ialah kandungan terperinci Pengagregatan bersarang dalam pertanyaan Ent. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam