我有两个表一个是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'。我需要每个产品的销售额总和。请帮助我。
答案 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