laravel Eloquent 分组查询
时间: 2023-06-17 12:05:11 浏览: 157
在 Laravel 中,可以使用 Eloquent 进行分组查询。下面是一个简单的例子,演示如何使用 `groupBy` 方法进行分组查询:
```php
$users = DB::table('users')
->select('account_id', DB::raw('count(*) as total'))
->groupBy('account_id')
->get();
```
上面的代码将会查询 `users` 表,并按照 `account_id` 列进行分组。然后,使用 `count` 函数统计每个分组中的记录数,并将其命名为 `total`。最后,使用 `get` 方法获取查询结果。
如果要在 Eloquent 中执行分组查询,可以使用 `groupBy` 方法。例如,假设有一个 `Post` 模型,我们可以按照 `user_id` 列进行分组,并统计每个用户发表的文章数:
```php
$posts = Post::select('user_id', DB::raw('count(*) as total'))
->groupBy('user_id')
->get();
```
上面的代码将会查询 `posts` 表,并按照 `user_id` 列进行分组。然后,使用 `count` 函数统计每个分组中的记录数,并将其命名为 `total`。最后,使用 `get` 方法获取查询结果。
注意:如果在分组查询中使用了 `select` 方法,则需要在查询中包含分组的列和聚合函数的结果列。否则,查询将会失败。
阅读全文