通过语句Laravel中的where分组

时间:2019-04-25 08:43:43

标签: laravel select

我正在编写一个小脚本来加载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:)?

1 个答案:

答案 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();