laravel - 如何在 laravel 雄辩的 selectRaw 方法中使用子查询?
问题描述
所以我有一个名为 chats 的表,它保存每个用户的消息,并且表有 id,user_id,message 作为列
我想使用 laravel eloquent 得到这样的结果
2020 年 12 月 19 日 | 20/12/2020 |
---|---|
开始聊天的用户数 | 5 |
消息数 | 25 |
我目前雄辩的查询生成器是
$data = Chat::groupBy('day')
->selectRaw("(SELECT COUNT(*) FROM chats group by user_id ) as user_counts,count(messages), DATE(created_at) as day")
->get();
解决方案
您可以使用以下代码简单地计算它们:
use Illuminate\Support\Facades\DB;
Chat::groupBy('day')
->count(DB::raw('DISTINCT user_id'))
->count('message')
推荐阅读
- docker - Openshift:导致应用程序不可用的任何部署
- ios - 调用 viewDidLoad 后如何重新渲染视图
- python - ElasticBeanstalk 突然开始无法部署 Django 应用程序并出现“无法使用 ImageField,因为未安装 Pillow”异常
- mongodb - Dockerfile 中 MongoDB 的健康检查
- typescript - 如何编写异步类型断言函数?
- neural-network - 编码神经网络中的偏差维度定义
- javascript - 无法使用 jQuery 的替换功能摆脱反斜杠
- optimization - 解决优化问题的 Scipy 代码(编写了 gurobi 代码!)
- python - 在 Pyspark 中包括特殊字符和忽略大写字母的情况下计算单词?
- excel - Excel VBA 搜索和打印功能