zaimealabs/aggregate

ZaimeaLabs Aggregate 包。

1.0 2024-06-26 13:21 UTC

This package is auto-updated.

Last update: 2024-09-27 12:47:50 UTC


README

Aggregate

生成模型的汇总数据,以便在应用程序中生成图表或报告。

Aggregate Tests License

嘿 👋 感谢您考虑捐赠,有了这些捐赠,我可以继续工作,为 ZaimeaLabs 项目做出贡献。

Donate

用法

要为您的模型生成汇总,导入 ZaimeaLabs\Aggregate\Aggregate 类,并传递一个模型或查询。 ::model() 直接使用。 ::query() 允许您使用额外的过滤器,如 where()

// Totals per month
    $model = Aggregate::model(User::class)
        ->between(
            start: now()->startOfYear(),
            end: now()->endOfYear(),
        )
        ->perMonth()
        ->count();

// Count users register per year, results are grouped per month
    $query = Aggregate::query(User::whereNotNull('email_verified_at'))
        ->between(
            start: now()->startOfYear()->subYears(10),
            end: now()->endOfYear(),
        )
        ->perYear()
        ->count();

// Average user calendar activity where record type is work with a over a span of 11 years, results are grouped per year
    $query = Aggregate::query(Record::where('type', 'work'))
        ->dateColumn('scheduled_at')
        ->between(
            start: now()->startOfYear()->subYears(10),
            end: now()->endOfYear())
        ->perYear()
        ->sumTime('duration');

日期列

如果您的列不是 created_at,只需使用 dateColumn('pointed_date_column')

->dateColumn('pointed_date_column')

汇总

您可以使用以下汇总

区间

您可以使用以下汇总区间