首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取where组的sum值

获取where组的sum值
EN

Stack Overflow用户
提问于 2019-06-23 16:42:08
回答 1查看 278关注 0票数 2

我需要total_user男性和女性为我的返回数据,这是可能的使用WHERE on GET sum?

我正在尝试这段代码,但不能正常工作

代码语言:javascript
复制
$male = $get_matket_penetration->where('gender', 'MALE')->sum('totalUser');
$female = $get_matket_penetration->where('gender', 'FEMALE')->sum('totalUser');
$male_persentation = round($male /($male+$female) * 100, 2);
$female_persentation = round($female /($male+$female) * 100, 2);

这是我的完整代码

代码语言:javascript
复制
$get_matket_penetration = MarketOverviewMarketPenetrationMap::dashboardtypeid(session('user_dashboard_type'))->provinceid($user_province_id)->dates($year_month)
        ->select('province',DB::raw('SUM(totalUser) as totalUser'))
        ->groupBy('province')
        ->groupBy('gender')
        ->get();

        $ecommerce_penetration_map = [];
        foreach($get_matket_penetration->toArray() as $item):
            // Get total User Per Province
            $total_per_province = TselPenetration::cityid(session('user_city_id'))->dates($year_month)
                ->select(DB::raw('SUM(totalUser) as totalUser'))
                ->where('province',$item['province'])
                ->first();
            // Set Penetration user per app per province
            $penetration = ($item['totalUser']/$total_per_province->totalUser) * 100;
            $male = $get_matket_penetration->where('gender', 'MALE')->sum('totalUser');
            $female = $get_matket_penetration->where('gender', 'FEMALE')->sum('totalUser');
            $male_persentation = round($male /($male+$female) * 100, 2);
            $female_persentation = round($female /($male+$female) * 100, 2);
            $ecommerce_penetration_map[$item['province']] = [
                'province' => $item['province'],
                'total_user' => $item['totalUser'],
                'male'=> $male_persentation ,
                'female'=> $female_persentation ,
                'total_user_province'=>$total_per_province->totalUser,
                'penetration'=>round($penetration, 2)
            ];
        endforeach;

   dd($ecommerce_penetration_map );
EN

回答 1

Stack Overflow用户

发布于 2019-06-23 20:26:15

在您的$get_matket_penetration中,您已经选择了2列。1-省份2-totalUser,因此您没有where的性别(‘性别’,‘男性’)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56722319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档