我有两个名为conversions
和cc_sessions
的表。
conversions
包含以下列:
session_id (int 11)
cpa (int 11)
revenue (int 11)
cc_sessions
包含以下列:
call_session_id (int 11)
agent (int 5)
这两个表格由session_id
和call_session_id
相关联。
以下是我想从查询中获得的内容:
每当cpa
和agent
时,与个人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'
答案 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示例。