MySQL查询从连接表中获取SUM

时间:2014-10-23 18:48:00

标签: mysql

我有两个名为conversionscc_sessions的表。

conversions包含以下列:

session_id (int 11)
cpa (int 11)
revenue (int 11)

cc_sessions包含以下列:

call_session_id (int 11)
agent (int 5)

这两个表格由session_idcall_session_id相关联。

以下是我想从查询中获得的内容:

每当cpaagent

时,

与个人cpa > 0相关联的所有revenue = 0的总和

所以基本上如果代理商17有20次没有收入的转换但是cpa为10我应该看到一行:

agent sum(cpa)
17     200

这是我尝试过的,但它肯定无法正常工作:

SELECT s.agent, SUM(c.cpa)
FROM edu.conversions c JOIN edu.cc_sessions s ON c.session_id = s.call_session_id 
WHERE c.revenue = '0' AND c.cpa > '0'

2 个答案:

答案 0 :(得分:1)

我无法在MySql中测试它。这是它在SQL中的工作方式:

SELECT s.agent, SUM(c.cpa)
FROM edu.conversions c
JOIN edu.cc_sessions s ON c.session_id = s.call_session_id
WHERE c.revenue = '0'
AND c.cpa > '0'
GROUP BY s.agent

由于您的列是INT,所以这可能效果更好:

SELECT s.agent, SUM(c.cpa)
FROM edu.conversions c
JOIN edu.cc_sessions s ON c.session_id = s.call_session_id
WHERE c.revenue = 0
AND c.cpa > 0
GROUP BY s.agent

答案 1 :(得分:1)

如果您想为每个代理商汇总一些内容,则需要按代理商进行分组。你的条件可以留在那里的条款。

试试这个:

SELECT s.agent, SUM(c.cpa)
FROM conversion c JOIN cc_sessions s ON s.call_session_id = c.session_id
WHERE c.revenue = 0 AND c.cpa > 0
GROUP BY s.agent;

以下是SQL Fiddle示例。