计算每天SQL初始联系人的数量

时间:2015-04-10 11:06:12

标签: sql

这是来自使用MS Access的SQL知识水平较低的人

我在名为T1的表中有一些看起来像这样的数据:

Customer    ...........Visit  
c………….      01/01/2001  
b……………      01/01/2001  
b……………      01/01/2001  
a………..      01/01/2001  
b………..  02/01/2001  
a……..       02/01/2001  
d…………       02/01/2001  
e………..      03/01/2001  
d……….       03/01/2001  
c………..      03/01/2001  

我已经编写了一些SQL来识别客户的第一个实例:

   SELECT Customer , MIN(Visit) as 'First Contact'  
     FROM T1   
     GROUP BY cust;  

这会生成客户与我们联系的第一天列表

Customer......  'First Contact'  
a…...............       01/01/2001  
b………    ....    01/01/2001  
c………......      01/01/2001  
d……..........       02/01/2001  
e……...……        03/01/2001 

所有罚款和花花公子但我需要的是白天总共第一次接触,即

First_Contact_Date… NoOfNewContacts  
01/01/2001……... ............    3  
02/01/2001…………........          1  
03/01/2001………............       1  

1 个答案:

答案 0 :(得分:2)

基本上,你在中途。你只需要一个聚合:

SELECT FirstContactDate, COUNT(*)
FROM (SELECT Customer , MIN(Visit) as FirstContactDate
      FROM T1
      GROUP BY cust
     ) t
GROUP BY FirstContactDate
ORDER BY FirstContactDate;

关于数据类型的说明:Visit应使用date或相关类型存储在数据库中。这将确保order by正常工作。如果 将日期存储为字符串,则使用ISO标准YYYY-MM-DD格式。然后order by将正常工作。