Laravel Eloquent查询statistics表分组统计返回空结果问题
统计功能分组数据为0问题排查方案
数据层校验
- 直接执行SQL校验
statistics表有效数据:替换对应筛选条件执行SELECT id_ployed, call_id, COUNT(*) FROM statistics WHERE [你的查询筛选条件] GROUP BY id_ployed, call_id,确认返回结果是否存在非0数值 - 校验字段写入正确性:确认数据迁移/写入逻辑中,
id_ployed是否正确对应员工ID、call_id是否正确关联呼叫状态对应外键,不存在字段赋值错位、批量空值写入的问题 - 校验过滤规则:如果
statistics表配置了软删除、状态过滤逻辑,确认查询时没有误过滤掉全部有效数据
控制器查询逻辑校验
- 校验分组字段归属:确认分组用的
员工ID、呼叫状态字段是从statistics表或关联正确的表取的,没有残留旧逻辑里直接取call表字段的代码 - 校验关联逻辑:如果呼叫状态需要关联
call表获取,确认statistics.call_id和call.id的关联类型正确,没有用内连接导致关联不上的数据被全部过滤 - 校验聚合逻辑:确认计数函数作用在
statistics表字段上,比如用COUNT(statistics.id)而非COUNT(call.id),排查是否错误加了DISTINCT去重导致计数异常 - 打印控制器执行的原生SQL,直接放到数据库执行,如果返回分组结果非0,说明问题出在模型属性映射、返回值组装环节
返回值组装逻辑校验
- 确认
nllamadas和resultados的统计数据源一致:如果总条数还是从旧call表统计,分组从新statistics表统计,就会出现总条数正常但分组全0的情况 - 确认分组查询结果正确赋值到
resultados数组的对应下标,不存在键名不匹配、字段取值错误的问题 - 校验
Estadisticas模型字段映射:确认模型中id_ployed、call_id的属性名和数据库字段名完全匹配,不存在ORM自动转驼峰/下划线导致的取值错误
前端渲染逻辑校验
- 打印接口返回的原始
resultados字段值,确认是接口返回本身全0还是前端取值错误导致显示为0 - 确认ChartJS配置的数据集取值键名和接口返回的
resultados数组键名完全匹配,不存在大小写、拼写错误
内容的提问来源于stack exchange,提问作者scorpions78
相关产品推荐
相关产品推荐

