我正在编写一个小脚本来加载Attendee_logs,该脚本基于小时来统计打印总数。
首先,我从与会者中加载ID
$allAttendees->pluck('id')->implode(',')
所以我从中得到389832、321321(这是来自与会者的ID,基于一个组)。
现在,我想按小时将它们分组。
但是我不知道如何添加whereIn
语句
$badgesPrintedByDate = DB::table('Attendee_logs')->select(DB::raw('hour(created_at)'), DB::raw('COUNT(id)'))->whereIn('id', [$allAttendees->pluck('id')->implode(',')])->groupBy(DB::raw('hour(created_at)'));
当我这样做时,我得到的结果是空的。 但是当我删除whereIn时,我得到了结果。
所以我的问题是,如何根据小时数计算行数,并在其中给出ID:)?
答案 0 :(得分:1)
我认为这会起作用:
$badgesPrintedByDate = DB::table('Attendee_logs')->select(DB::raw('hour(created_at)'), DB::raw('COUNT(id)'))->whereIn('id', $allAttendees->pluck('id')->all())->groupBy(DB::raw('hour(created_at)'));
与其说:
$allAttendees->pluck('id')->all()
哪个返回ID数组,您也可以说:'
$allAttendees->pluck('id')->values()
或者:
$allAttendees->pluck('id')->toArray();