Php LAVEL groupBy列并基于数量列添加总计
我在Laravel(order_product)中有一个数据透视表,它记录了属于某个订单的每个产品 我使用以下列“订单id、产品id、数量” 如果我使用Php LAVEL groupBy列并基于数量列添加总计,php,mysql,laravel,eloquent,laravel-eloquent,Php,Mysql,Laravel,Eloquent,Laravel Eloquent,我在Laravel(order_product)中有一个数据透视表,它记录了属于某个订单的每个产品 我使用以下列“订单id、产品id、数量” 如果我使用 DB::table('order_product')->selectRaw('*, count(*)')->groupBy('product_id'); 我得到每次产品出现的次数 然而,有些产品在一个订单中出现不止一次。如何将每个产品乘以数量列,然后按产品id分组并将它们一起计算 最后,我需要得到按产品分组的所有订单的总数 编辑
DB::table('order_product')->selectRaw('*, count(*)')->groupBy('product_id');
我得到每次产品出现的次数
然而,有些产品在一个订单中出现不止一次。如何将每个产品乘以数量列,然后按产品id分组并将它们一起计算
最后,我需要得到按产品分组的所有订单的总数
编辑
这是我的数据库表
期望输出:
产品(ID=30)在表中出现5次,来自5个不同的订单。“产品总数”乘以“数量”列将等于13我想您应该使用“数量”字段的总和对每个产品进行聚合。因此,应采取以下措施:
DB::table('order_product')->selectRaw('product_id, SUM(qty)')->groupBy('product_id');
这将对应于以下原始MySQL查询:
SELECT
product_id,
SUM(qty)
FROM order_product
GROUP BY
product_id
我认为您需要使用数量字段的总和对每个产品进行聚合。因此,应采取以下措施:
DB::table('order_product')->selectRaw('product_id, SUM(qty)')->groupBy('product_id');
这将对应于以下原始MySQL查询:
SELECT
product_id,
SUM(qty)
FROM order_product
GROUP BY
product_id
请张贴表格结构、样本数据和所需信息output@lad2025编辑了这篇文章。看一看。请张贴表格结构、样本数据和所需信息output@lad2025编辑了这篇文章。看一看。