【问题标题】:Laravel groupBy column and add totals based on Quantity columnLaravel groupBy 列并根据 Quantity 列添加总计
【发布时间】:2018-01-19 13:05:21
【问题描述】:

我在 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

【问题讨论】:

  • 请发布表结构、示例数据和所需输出
  • @lad2025 编辑了帖子。看看吧。

标签: php mysql laravel eloquent laravel-eloquent


【解决方案1】:

我认为您想对每种产品使用数量字段的总和进行汇总。因此,以下应该有效:

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

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 2021-08-29
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多