我有这张订单表
| ORDER_ID | PRODUCT | CUSTOMER | QTY | DATE
---------------------------------------------
| 1 | shoes | Nick | 1 | 01/01/2016
| 2 | shirts | Nick | 5 | 02/02/2016
| 3 | shoes | Paul | 10 | 03/03/2016
| 4 | shirts | Paul | 20 | 04/04/2016
因此,如何使用ONE Select语句获得此报告结果?
| Date_of_Order | Customer | Quantity | PRODUCT_TOTAL_SALES |
-----------------------------------------------------------------
| 01/01/2016 | Nick | 1 | shoes : 11 |
| 02/02/2016 | Nick | 10 | shirts : 25 |
| 03/03/2016 | Paul | 5 | shoes : 11 |
| 04/04/2016 | Paul | 20 | shirts : 25 |
我知道如何使用
concat(column1, ' ', column2)
创建组合列,但是我没有成功为其中的分组项添加总和。当我尝试左连接时,我得到一个产品的总和...但是它总是总和,并且与订单日期无关,因此当我尝试过滤查询结果一段时间后,我仍然得到鞋子11件,衬衫25件... 最佳答案
您可以group by
多列并获得最小组的总和。
如果您想获得每日销售额,请使用GROUP BY product
代替GROUP BY product, date
SELECT
o.`date` AS Date_of_Order,
SUM(o.qty) as Total_Quantity,
CONCAT(o.product, ':', SUM(o.qty))
FROM
orders o
GROUP BY product, `date`
ORDER BY `date`
关于mysql - 计算MySQL中组记录的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36916860/