我遇到这种情况,我直接从数据库中获取了一个集合,并且已经引入了几个过滤器,性别除外,如下所示:
$workers = Worker::where('status','Active')->where('category','SomeCategory')->get();
为了得到一般的年龄平均值,我得到这样的结果:
$avg_age = $workers->avg('age');
到目前为止一切顺利。
在$workers
集合的内部,有一列gender
。现在我希望按性别获得年龄平均值。我尝试了以下......这不起作用:
$avg_age_women = $workers->where('gender','female')->avg();
但是这不起作用,因为返回的值为零。
我知道我可以这样做:
$workers_female = Worker::where('status','Active')->where('category','SomeCategory')->where('gender','female')->get();
但是,如果我可以继续使用$workers
集合,我认为这会更有效率。
有没有办法从最初的$workers
集合中获得女性的平均值?我错过了什么?
答案 0 :(得分:3)
你没有说你想要做什么。
$avg_age_women = $workers->where('gender','female')->avg("age");