首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql查询:怎样才能只按cpm.ad_id分组,并拥有所有cc的总和?

mysql查询:怎样才能只按cpm.ad_id分组,并拥有所有cc的总和?
EN

Stack Overflow用户
提问于 2011-05-22 23:58:57
回答 2查看 77关注 0票数 0

我有两个表- cpm(ccad_idcpm)和clicks(ccad_id)。

当我运行时:

代码语言:javascript
复制
   SELECT cpm.ad_id, 
          COUNT(clicks.id) * cpm.cpm AS clicks_income     
     FROM cpm 
LEFT JOIN clicks on clicks.ad_id = cpm.ad_id and clicks.cc = cpm.cc
 GROUP BY cpm.ad_id, cpm.cc

我得到了:

代码语言:javascript
复制
ad_id | clicks_income
---------------------
1     | 271.00
1     | 2.60
2     | 238.00

现在我想要的结果是:

代码语言:javascript
复制
ad_id | clicks_income
---------------------
1     | 273.60
2     | 238.00

如何仅按cpm.ad_id进行分组,并具有所有cc的总和

当我删除cpm.cc时,我得到:

代码语言:javascript
复制
ad_id | clicks_income
---------------------
1     | 273.00
2     | 238.00
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-23 00:22:19

不要使用COUNT(whatever) * acolumn,而要使用SUM(AColumn)

此外,LEFT JOIN在这里没有意义,因为不匹配只会将NULL加到和上,这不是很有帮助。

代码语言:javascript
复制
SELECT cpm.ad_id, SUM(cpm.cpm) AS clicks_income 
FROM cpm INNER JOIN clicks ON clicks.ad_id = cpm.ad_id AND clicks.cc = cpm.cc
GROUP BY cpm.ad_id
票数 1
EN

Stack Overflow用户

发布于 2011-05-23 00:04:37

代码语言:javascript
复制
SELECT cpm.ad_id, COUNT(clicks.id)*cpm.cpm AS clicks_income 
FROM cpm LEFT JOIN clicks ON clicks.ad_id = cpm.ad_id AND clicks.cc = cpm.cc
GROUP BY cpm.ad_id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6089087

复制
相关文章

相似问题

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