讨论数量:
给你个参考吧
$query = function ($query) use ($startAt, $endAt) {
/** @var Builder $query */
$success = NotificationSendRecordStatus::SUCCESS;
return $query->select([
'template_id',
DB::raw('count(*) as send_records_count'),
DB::raw("count(case when status = {$success} then 1 end) as send_success_records_count"),
DB::raw("count(case when status <> {$success} then 1 end) as send_failed_records_count"),
DB::raw('count(case when landing_times > 0 then 1 end) as landing_records_count'),
DB::raw("date_format(created_at, '%Y-%m-%d') as created_date"),
DB::raw('count(distinct user) as users_count'),
])->whereBetween('created_at', [$startAt, (clone $endAt)->endOfDay()])
->groupBy('template_id', DB::raw('created_date'));
};
推荐文章: