mysql - 如何在sql查询中获取组的SUM

标签 mysql sql group-by sum

我的查询是

SELECT * 
FROM acodes
WHERE datenumber >=  '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30

结果是

sql results

有没有办法对 maxworth 列进行 SUM() ?我想在 sql 查询中将上面显示的所有 maxworth 相加。答案不是 SELECT *, SUM(maxworth),因为同一个 acodecampaignid 有多个 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/

相关文章:

Mysql group by order by 性能低下

python - 从 groupby pandas 中获取 MultiIndex

mysql - 使用不同的 where 语句在 MySQL 查询中选择多个计数

mysql - osCommerce 中产品属性的发票上仅显示前 32 个字符

sql - mysql查询调优

sql - 如何向现有 SQL 输出添加列?

sql - GUID 有没有可能全部用完?

mysql - 查询末尾的多个窗口定义

MYSQL:操作数应包含 1 列

python - Groupby 所选 DataFrame 列的值的给定百分位数