MySQL的总和使用组由多个列

问题描述:

下面的查询:MySQL的总和使用组由多个列

SELECT `brand`, 
     count(*) * `denomination` AS 'total' 
FROM `inventory` 
WHERE `owner` = 'owner-one' 
    AND `currency` = 'GBP' 
    AND `activated_at` IS NULL 
    AND `expires_at` >= '2018-06-21' 
GROUP BY `owner`, 
     `brand`, 
     `currency`, 
     `denomination` 

产地:

| brand  | total | 
|-----------|-------| 
| brand-one | 3000 | 
| brand-one | 8000 | 
| brand-two | 10000 | 

我想什么是进一步按该项目,并总结总计所以输出是这样的:

| brand  | total | 
|-----------|-------| 
| brand-one | 11000 | 
| brand-two | 10000 | 

数据:

Sample data

+1

请问您能否给出例子的来源 – Jens

+1

我想不出来的最长时间是1100来自哪里。那么它在我身上发现我认为你的意思是11000我认为通过分组集合或者总结可能会做你以后的事情。 – xQbert

+0

唉废话,血腥的错字。是的,11000. – Mike

你得到3条记录的原因是该组包含了面额。如果我们改变逻辑,以便总结而不是计数(*)*面额,那么我们可以得到两个记录。 (只要你从组中删除面额)...但也许我错过了一些东西。

SELECT `brand`, 
     Sum(`denomination`) AS 'total' 
FROM `inventory` 
WHERE `owner` = 'owner-one' 
    AND `currency` = 'GBP' 
    AND `activated_at` IS NULL 
    AND `expires_at` >= '2018-06-21' 
GROUP BY `owner`, 
     `brand`, 
     `currency` 
+0

谢谢你解决它。 – Mike