Maison > développement back-end > Golang > le corps du texte

Agrégation imbriquée dans la requête Ent

PHPz
Libérer: 2024-02-09 09:36:20
avant
1101 Les gens l'ont consulté

Ent 查询中的嵌套聚合

Éditeur PHP Apple vous présentera « Agrégation imbriquée dans la requête Ent » dans cet article. Dans le domaine des requêtes et de l'analyse de données, l'agrégation imbriquée est une technique puissante qui peut effectuer plusieurs niveaux d'opérations d'agrégation dans une seule requête. En utilisant des agrégations imbriquées, nous pouvons effectuer une analyse approfondie des données de manière plus flexible et obtenir des résultats plus précis. Cet article expliquera en détail ce qu'est l'agrégation imbriquée et comment implémenter des opérations d'agrégation imbriquées dans le framework Ent pour aider les lecteurs à mieux comprendre et appliquer cette technologie.

Contenu de la question

Comment écrire cette simple instruction SQL en utilisant le code généré par ent ?

select max(t.sum_score) from
                             (select sum(score) as "sum_score"
                              from matches
                              group by team) as t
Copier après la connexion

J'ai essayé d'utiliser les indicateurs de fonctionnalité du modificateur SQL personnalisés décrits ici, mais je ne sais pas comment accéder au champ sum_score depuis l'extérieur du modificateur.

Solution

Voici la réponse du propriétaire du projet ent a8m (Merci !)

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)
Copier après la connexion

Vous pouvez trouver la réponse complète icisur le référentiel officiel github. J'ai dû ajouter sql.desc(as) pour obtenir la valeur maximale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!