如何在mysql查询中求和的总和

Gho*_*man 8 mysql sql

SELECT a.id AS supplier, sum( processed_weight ) AS total_qty
FROM supplier_inward a
INNER JOIN warehouseb ON a.id = b.supplier
WHERE a.master_product_id = '38'
GROUP BY b.supplier
Run Code Online (Sandbox Code Playgroud)

输出存在

supplier    total_qty
12046      475.00
12482      99.00
Run Code Online (Sandbox Code Playgroud)

输出需要

total_qty
574.00
Run Code Online (Sandbox Code Playgroud)

这里我需要这个查询中的总和(total_qty)?如何实现这一目标

ype*_*eᵀᴹ 16

只需修改GROUP BY,添加WITH ROLLUP:

SELECT a.id AS supplier, sum( processed_weight ) AS total_qty
FROM supplier_inward a
  INNER JOIN warehouseb ON a.id = b.supplier
WHERE a.master_product_id = '38'
GROUP BY b.supplier
  WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)

输出:

supplier    total_qty
12046       475.00
12482        99.00
NULL        574.00
Run Code Online (Sandbox Code Playgroud)

  • +1每天学习新东西 - 用ROLLUP - 谢谢! (2认同)
  • +1 - 我完全错过了MySQL也有WITH ROLLUP!我在MSSQL 2005中经常使用它.就像一个魅力! (2认同)

Joh*_*Woo 5

这个怎么样:

SELECT SUM(iQuery.total_qty) as iTotal
FROM
    (SELECT a.id AS supplier, sum( processed_weight ) AS total_qty
    FROM supplier_inward a
    INNER JOIN warehouseb ON a.id = b.supplier
    WHERE a.master_product_id = '38'
    GROUP BY b.supplier) as iQuery
Run Code Online (Sandbox Code Playgroud)