如何根据MySQL中的分组对单个列求和

时间:2016-03-01 17:40:24

标签: mysql

我有两个表一个是Sales,另一个是BrandMaster

  

我的要求:如何基于MySQL中的分组来汇总单个列

销售表的结构和数据:

SNo            BID          Amount
-----------------------------------
101             1            200
102             2            500
103             5            800
104             8            250
105             1            200
106             2            500
107             5            800
108             8            250

BrandMaster表的结构和数据:

BID           BrandName          
-------------------------
1             Prod#1
2             Prod#2
3             Prod#3
4             Prod#4
5             Prod#5
6             Prod#6
7             Prod#7
8             Prod#8

我的预期输出:

BID           SumAmount          
-------------------------
1             400
2             500
3             0
4             0
5             0
6             1600
7             0
8             500

销售表包含BrandID' BID'和销售额与销售ID' SNo'。我需要每个产品的销售额总和。请帮助我。

2 个答案:

答案 0 :(得分:1)

你走了!

SELECT db.sales.bid AS "BID",
    <AGGREGATE>(db.sales.amount) AS "SumAmount"
    FROM db.sales
    GROUP BY db.sales.bid
    ORDER BY db.sales.bid;

编辑:db是您的数据库,sales是您的“销售”表。

第二次修改:使用here中的内容替换<AGGREGATE>

答案 1 :(得分:1)

你可以试试这个 SqlFiddle Demo

SELECT
    BrandMaster.BID,          
    IFNULL(SUM(Sales.Amount),0) AS SumAmount
FROM BrandMaster 
    LEFT JOIN Sales ON ( BrandMaster.BID=Sales.BID )
GROUP BY
    BrandMaster.BID
ORDER BY 
    BrandMaster.BID,
    Sales.SNo