Heim > Backend-Entwicklung > Golang > Verschachtelte Aggregation in der Ent-Abfrage

Verschachtelte Aggregation in der Ent-Abfrage

PHPz
Freigeben: 2024-02-09 09:36:20
nach vorne
1158 Leute haben es durchsucht

Ent 查询中的嵌套聚合

PHP-Editor Apple stellt Ihnen in diesem Artikel „Nested Aggregation in Ent Query“ vor. Bei der Datenabfrage und -analyse ist die verschachtelte Aggregation eine leistungsstarke Technik, mit der mehrere Ebenen von Aggregationsvorgängen in einer einzigen Abfrage ausgeführt werden können. Durch die Verwendung verschachtelter Aggregationen können wir eingehende Datenanalysen flexibler durchführen und genauere Ergebnisse erzielen. In diesem Artikel wird ausführlich erläutert, was verschachtelte Aggregation ist und wie verschachtelte Aggregationsvorgänge im Ent-Framework implementiert werden, um den Lesern zu helfen, diese Technologie besser zu verstehen und anzuwenden.

Frageninhalt

Wie schreibe ich diese einfache SQL-Anweisung mit dem von ent generierten Code?

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

Ich habe versucht, die hier beschriebenen Funktionsflags für benutzerdefinierte SQL-Modifikatoren zu verwenden, weiß aber nicht, wie ich von außerhalb des Modifikators auf das Feld sum_score zugreifen kann.

Lösung

Dies ist die Antwort des HNO-Projektinhabers a8m (Vielen Dank!)

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)
Nach dem Login kopieren

Die vollständige Antwort finden Sie hierim offiziellen Github-Repository. Ich musste sql.desc(as) hinzufügen, um den Maximalwert zu erhalten.

Das obige ist der detaillierte Inhalt vonVerschachtelte Aggregation in der Ent-Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage