我在Laravel(order_product)中有一个数据透视表,它记录了属于某个订单的每个产品。
我使用以下列“ order_id,product_id,qty ”
如果我使用
DB::table('order_product')->selectRaw('*, count(*)')->groupBy('product_id');
我得到每个产品发生的计数。
但是,某些产品在订单中不止一次出现。如何将每个产品乘以 qty 列,然后按 product_id 进行分组并将它们一起计算?
最后,我需要获得按产品分组的所有订单的总数。
修改 这是我的数据库表
期望的输出:
产品(ID = 30)在表中出现 5 次,来自5个不同的订单。产品总数乘以数量列将等于 13
答案 0 :(得分:0)
我认为您希望使用每个产品的数量字段的总和进行汇总。因此,以下应该有效:
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