0

我有一个包含 10 列的表格,其中列出了营销活动的结果,包括人名、日期、居住区域、请求和响应。

请求列始终是一个数字,表示我们向特定人员发送的调查请求数。

响应列是一个从 0 到 X 的数字,表示一个人已响应接受的调查数。

现在,当我查看实际表格时,可能有 10% 左右的响应率。在响应列中有很多非零条目。

但是,当我编写这样的聚合函数时:

SELECT person, date, SUM(requests), SUM(response)
FROM analytics.SurveyResults0304
WHERE group_type = 'Youth'
GROUP BY person, date; 

我得到了 SUM(请求)的正确数字,但我得到了 SUM(响应)的大胖“0”?这对于所有 3 组类型都是相同的。它为 SUM(response) 返回 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 表示全面响应。

4

1 回答 1

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
于 2013-03-11T14:55:22.947 回答