我的查询是
SELECT *
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30
结果是
有没有办法对 maxworth
列进行 SUM() ?我想在 sql 查询中将上面显示的所有 maxworth
相加。答案不是 SELECT *, SUM(maxworth)
,因为同一个 acode
和 campaignid
有多个 maxworth
.
最佳答案
将现有查询引用为内联 View 。获取现有查询,并用括号括起来,然后在另一个查询中使用它代替表名。 (内联 View 需要分配一个别名。)
例如:
SELECT SUM(v.maxworth)
FROM (
-- existing query goes here, between the parens
SELECT *
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30
) v
在 MySQL 中,该内联 View 称为派生表。查询的工作方式...MySQL 首先在内联 View 中运行查询,并将结果集具体化到派生表中。一旦派生表被填充,外部查询就会针对该表运行。
关于mysql - 如何在sql查询中获取组的SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40981568/