2017-08-11 103 views
0

我在Laravel(order_product)中有一個數據透視表,它記錄屬於訂單的每個產品。Laravel groupBy列並根據Quantity列添加總計

我用下面列 「的order_id,product_id,數量

如果我使用

DB::table('order_product')->selectRaw('*, count(*)')->groupBy('product_id'); 

我得到的每一個產品出現的次數。

但是,某些產品在訂單中會多次出現。如何將每個產品乘以數量列,然後按product_id進行分組並將它們統計在一起?

最後,我需要獲得按產品分組的所有訂單的總數。

EDIT 這是我的數據庫表

enter image description here

希望的輸出:

產品(ID = 30)發生在表5 ,從5個不同的命令。乘以數量列的產品總數將等於

+0

請張貼表結構,樣本數據和期望的輸出 – lad2025

+0

@ lad2025編輯的柱。看一看。 –

回答

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