php - Laravel - 查询过去 7 天的计数值
问题描述
我有一个用户访问表,我想做一个查询,按日期返回访问次数。
我的表有这些列:
id
type -> int
id_user -> int
created_at -> datetime
我正在尝试这个查询:
$admin = userAccess::distinct()
->select(DB::raw('count(*) as total ') , DB::raw('DATE_FORMAT(created_at, "%Y-%m-%d")'), DB::raw('DAYNAME(created_at) as dia'))
->where('created_at', '>=', DB::raw('DATE(NOW()) - INTERVAL 7 DAY'))
->where('type', 1)
->groupBy('created_at')
->limit(7)
->get();
通过此查询,它返回给我:
Monday(2018-10-08) -> 1
Tuesday(2018-10-09) -> 1
我想要的结果是:
Monday(2018-10-08) -> 3
Tuesday(2018-10-09) -> 1
我做错了什么?
谢谢
解决方案
尝试按照以下您必须按日期分组,例如:'2018-10-08' 不是时间戳
$admin = userAccess::distinct()
->select(DB::raw('count(*) as total ') , DB::raw('DATE_FORMAT(created_at, "%Y-%m-%d") as created_date '), DB::raw('DAYNAME(created_at) as dia'))
->where('created_at', '>=', DB::raw('DATE(NOW()) - INTERVAL 7 DAY'))
->where('type', 1)
->groupBy('created_date')
->limit(7)
->get();
推荐阅读
- c++11 - 获取 rtpL16 数据到本地文件 | 如何检查文件是否符合预期?
- dart - Angular Dart 给出错误:getter 'injector$Injector' 没有为类 'self' 定义
- amazon-web-services - 将 RDS 复制到新数据库的最快方法
- angular - 如何测试角度形式的第一个表单控制重点是使用茉莉花的页面加载
- java - 无法使用 Java 从 S3 下载文件
- java - @Test(expected = Exception.class) 或 Assertions.assertThrows(...) 或 assertThatThrownBy(..) 推荐哪一个?
- swift - 在主应用程序包和它包含的框架之间进行通信
- windows - GitHub 的凭据“卡在”我的另一个帐户上
- powershell - 将变量值推送到新的记事本窗口中(不保存文件)
- apache-nifi - 如何在 NiFi 中向管理员用户授予所有权限