首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得sql查询中组的和

如何获得sql查询中组的和
EN

Stack Overflow用户
提问于 2016-12-05 19:09:52
回答 4查看 59关注 0票数 0

我的疑问是

代码语言:javascript
复制
SELECT * 
FROM acodes
WHERE datenumber >=  '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30

结果是

是否有一种方法可以对maxworth列进行求和?我想将上面所示的所有maxworth加在一个sql查询中。答案不是SELECT *, SUM(maxworth),因为对于同一个acodecampaignid有多个maxworth

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-15 18:59:22

将现有查询引用为内联视图。接受现有的查询,并将其包装为parens,然后在另一个查询中使用它来代替表名。(需要为内联视图分配别名。)

例如:

代码语言:javascript
复制
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中,内联视图称为派生表。查询的工作方式..。MySQL首先在内联视图中运行查询,并将结果集具体化为派生表。一旦填充了派生表,外部查询就会运行。

票数 1
EN

Stack Overflow用户

发布于 2016-12-05 19:15:39

不知道你在问什么。

代码语言:javascript
复制
SELECT
    a.MAXWORTH1,
    SUM(a.MAXWORTH) AS "MAXWORTH2"
FROM (
    SELECT 
      CAMPAIGNID, 
      SUM(maxworth) AS "MAXWORTH1"
    FROM acodes 
    WHERE datenumber ='2016-12-05' 
    GROUP BY campaignid 
) a
GROUP BY a.MAXWORTH1
票数 1
EN

Stack Overflow用户

发布于 2016-12-14 21:52:00

这将通过唯一的活动项、acode和maxworth计算SUM()。你提到“有多个相同的代码和活动”,这使我认为你可能想把“最大的价值”作为独特的。

代码语言:javascript
复制
    SELECT 
      campaignid,
      acode,
      maxworth,
      SUM(maxworth) AS 'MAXWORTH1'
    FROM acodes 
    WHERE datenumber >= '2016-12-09' 
    GROUP BY campaignid, acode, maxworth
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40981568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档