You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用单次Eloquent查询获取数据库表的多个总和统计结果

Laravel Eloquent 单次查询获取多个总和统计结果方案

完全可以实现,你可以借助selectRaw方法在单次查询中写入多个SUM聚合逻辑,避免两次独立查询的额外IO开销,具体实现代码如下:

核心查询代码

$statistics = Model::where('is_active', 1)
    ->selectRaw('SUM(clicks) as total_clicks, SUM(impressions) as total_impressions')
    ->first();

取值方式

$total_1 = $statistics->total_clicks; // 输出结果为2.000,与原有查询结果一致
$total_2 = $statistics->total_impressions; // 输出结果为8.000,与原有查询结果一致

补充说明

  • 该方案本质是将两个聚合统计逻辑合并到同一条SQL语句中,仅触发一次数据库请求,数据量越大时性能优化效果越明显
  • 额外的查询筛选条件可以直接在where查询链中正常追加,和普通Eloquent查询的写法完全兼容
  • 如果需要同时统计is_active为0的对应字段总和,也可以在selectRaw中加入条件判断聚合,示例:SUM(CASE WHEN is_active = 0 THEN clicks ELSE 0 END) as inactive_clicks,即可在同一次查询中拿到多维度的统计结果

内容的提问来源于stack exchange,提问作者Maik Lowrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:48:02