Laravel中使用groupBy结合SUM实现售票统计与金额求和的问题
解决方案
你只需要在selectRaw中添加SUM()函数来计算对应金额字段的总和即可,假设你的表中存储单张门票金额的字段名为precio(如果实际字段名不同,替换成你数据库里的真实字段名),修改后的代码如下:
$tickets = Ingresostaquilla::groupBy('tipo') ->selectRaw('count(*) as quantity, tipo, SUM(precio) as total_revenue') ->get();
关键说明:
SUM(precio)会对每个分组(即每种门票类型)下的precio字段值求和,别名total_revenue用来方便后续调用这个统计结果- 确保
groupBy('tipo')包含了你select中所有非聚合函数的字段(这里只有tipo),如果Laravel开启了严格模式,这一点很重要,避免出现SQL语法错误 - 执行完后,你可以通过
$ticket->quantity获取该类型门票的销售数量,$ticket->total_revenue获取该类型的总收款金额
内容的提问来源于stack exchange,提问作者jerex
相关产品推荐
相关产品推荐

