数据聚合

所有用户按照 nameage 分组(Group by),并计算他们的年龄之和。

package main

import (
    "context"

    "<project>/ent"
    "<project>/ent/user"
)

func Do(ctx context.Context, client *ent.Client) {
    var v []struct {
        Name  string `json:"name"`
        Age   int    `json:"age"`
        Sum   int    `json:"sum"`
        Count int    `json:"count"`
    }
    err := client.User.Query().
        GroupBy(user.FieldName, user.FieldAge).
        Aggregate(ent.Count(), ent.Sum(user.FieldAge)).
        Scan(ctx, &v)
}

根据单个字段分组。

package main

import (
    "context"

    "<project>/ent"
    "<project>/ent/user"
)

func Do(ctx context.Context, client *ent.Client) {
    names, err := client.User.
        Query().
        GroupBy(user.FieldName).
        Strings(ctx)
}

Last updated