我有一个包含10列的表格,其中列出了营销活动的结果,包括人名,日期,居住区域,请求和回复。
请求列始终是一个数字,表示我们发送给特定人员的调查请求数。
响应列是一个从0到X的数字,表示一个人已回复的调查数。
现在,当我查看实际表格时,可能会有大约10%的响应率。响应列中有许多非零条目。
但是,当我写这样的聚合函数时:
SELECT person, date, SUM(requests), SUM(response)
FROM analytics.SurveyResults0304
WHERE group_type = 'Youth'
GROUP BY person, date;
我得到了一个正确的SUM(请求)数,但是我得到一个很大的“0”用于SUM(响应)? 所有3种类型都是一样的。它为SUM(响应)返回0
更新:当我不包含group_type过滤器时,它工作正常,但为什么我不能将它与WHERE过滤器一起使用?
感谢!!!
EDIT2:样本表
Person Date Group_Type Requests Response Neighborhood FirstName
-------- -------- ----------- -------- -------- ------------ ---------
Nixon 3/3/2013 Youth 3 3 Chinatown Richard
Clinton 3/3/2013 Youth 4 0 Gunhill Bill
Mao 3/3/2013 Youth 5 0 Berryville Chairman
Nixon 3/4/2013 Youth 17 2 Townsford Richard
Gates 3/3/2013 Elderly 41 5 Chinatown Bill
Gates 3/4/2013 Elderly 0 0 Chinatown Bill
Gates 3/5/2013 Elderly 0 0 Chinatown Bill
Gates 3/6/2013 Elderly 0 0 Chinatown Bill
例如 当我这样做时:
SELECT SUM(requests), SUM(response)
FROM analytics.SurveyResults0304
WHERE group_type = 'Youth';
请求返回70,全面响应返回0。
答案 0 :(得分:1)
您的代码似乎正常运行。请参阅根据数据样本构建的SQL Fiddle。
您的Group_Type
列中可能有额外空格和/或标签吗?
PERSON DATE SUM(REQUESTS) SUM(RESPONSE)
--------------------------------------------------------
Clinton March, 03 2013 00:00:00+0000 4 0
Mao March, 03 2013 00:00:00+0000 5 0
Nixon March, 03 2013 00:00:00+0000 3 3
Nixon March, 04 2013 00:00:00+0000 17 2