gpt4 book ai didi

php - 通过 laravel Mysql 使用 Distinct 和 group

转载 作者:行者123 更新时间:2023-11-29 03:18:10 24 4
gpt4 key购买 nike

我有表 requests 和字段

`id` `user_id` `status` `url` `price` `date`

和带有字段的people

`id` `name` `number` `password` `nickname`

我正在尝试按每个日期对所有请求进行分组,并使用此查询计算每天有多少请求:

$data['dates'] = RequestModel::orderBy('date', 'desc')
->groupBy(DB::raw("DATE_FORMAT(date, '%Y-%m-%d')"))
->take(2)
->get(array(
DB::raw('Date(date) as date'),
DB::raw('COUNT(*) as requests'),
));

这给出了这样的数据:

"dates": [
{
"date": "2018-06-13",
"requests": 230
},
{
"date": "2018-06-12",
"requests": 399
}]

问题是,当用户在 people 表中创建新请求时,会创建具有相同 number 和不同 nickname 的新用户。像这样:

`id` `name` `number` `password` `nickname`
1 jack 555845 pass 555845-1
2 jack 555845 pass 555845-2

我想统计具有不同用户数的请求,但不知道该怎么做。如果可以,请帮助我

最佳答案

我找到了解决方案

$data['requests'] = RequestModel::join(env('DB_DATABASE_2').'.people', env('DB_DATABASE_2').'.people.id', '=', env('DB_DATABASE_2').'.requests.user_id')
->where('requests.date', '>', \Carbon\Carbon::now('Asia/Tbilisi')->subDays(30))
->orderBy('requests.id', 'DESC')
->distinct()
->groupBy('people.number')
->get();

$grouped = $data['requests']->groupBy(function($req){
return explode(' ', $req->date)[0];
});

$data['dates'] = [];
$i=0;
foreach($grouped as $key => $date){
$data['dates'][$i]['date'] = $key;
$data['dates'][$i]['requests'] = sizeof($date);
$i++;
}

使用 laravel 集合

关于php - 通过 laravel Mysql 使用 Distinct 和 group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50835710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com