Maison >développement back-end >Golang >Agrégation imbriquée dans la requête 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.
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
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.
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)
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!