LaravelORM 中的 withSum , withAvg, withMax,withMin 的实现

laravelORM 中的 withCount 可以统计相关联数据的总数 ,
LaravelORM 写法:

Orm::withCount(['relation'])->get();

解析成 SQL :

select `a`.*, (select count(*) from `relation` where `a`.`id` = `relation`.`aid`) as `relation_count` from `a`;

当需要统计关联的 某个字段 sum 时,可以这样写:

Orm::withCount(['relation as relation_sum' =>function($query){
    $query->select(DB::raw("sum(amount) as relationsum"));
}])

解析成 SQL:

select `a`.*, (select sum(amount) from `relation` where `a`.`id` = `relation`.`aid`) as `relation_sum_count` from `a` ;

其他的 avg , max , min 也可以通过 withCount 实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值