Laravel查询生成器或雄辩,用于计算具有created_at和delete_at的MAU

balp4ylt  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(71)

我有两个表userslogin_histories

    • 用户**

| 身份证|姓名|创建时间|删除时间|
| - ------|- ------|- ------|- ------|
| 1个|用户1|2022年10月10日0时00分|2023年1月10日0时00分|
| 第二章|用户2|二〇二二年十一月十日零时|零|
| 三个|用户3|二〇二二年十二月十日零时|零|

    • 登录历史记录**

| 身份证|用户标识|登录时间|
| - ------|- ------|- ------|
| 1个|1个|2022年10月10日0时00分|
| 第二章|1个|2022年11月12日0时00分|
| 三个|第二章|二〇二二年十一月十日零时|
| 四个|1个|2022年12月7日0时00分|
| 五个|三个|二〇二二年十二月十日零时|

    • 结果**

| 年份|月|用户计数|登录用户计数|毛|
| - ------|- ------|- ------|- ------|- ------|
| 小行星2022|十个|1个|1个|1个|
| 小行星2022|十一|第二章|第二章|第二章|
| 小行星2022|十二|三个|第二章|0.67|
| 二○二三|一|第二章|无|无|
user_count:成员计数(年-月)
login_user_count:记录的成员计数(年-月)
mau = login_user_count/user_count
我想查询results
先谢了。

bnl4lu3b

bnl4lu3b1#

我想出了这个解决办法:

$results = LoginHistory::select(
    DB::raw('EXTRACT(YEAR FROM `created_at`) as year'),
    DB::raw('EXTRACT(MONTH FROM `created_at`) as month'),
    DB::raw('COUNT(user_id) as user_count'),
)->groupBy('user_id', 'month', 'year')->get();

我认为这个解决方案会帮助你得到这个想法。
这将返回
| 年份|月|用户计数|
| - ------|- ------|- ------|
| 年份|月|计数次数|

相关问题