在表

时间:2016-10-21 17:51:44

标签: sql join count teradata

我有一张表格,其中列出了已发送的各种营销电子邮件,发送给他们的人以及发送日期。

我正在尝试构建一个列,其中包含过去90天内有多少联系人已发送给该客户的值。

我一直在思考如何在SQL中编写代码。任何建议都会非常有用!

2 个答案:

答案 0 :(得分:0)

current_date()可能需要根据您的数据库进行替换。

select      customer
           ,count (*)   as contacts

from        mytable

where       contact_date >= current_date() - 90

group by    customer
;

答案 1 :(得分:0)

假设表结构如下。

MarketingEmails( CustomerID, Email, SentTo, SentDate );


SELECT CustomerId,
       Email,
       SentTo,
       SentDate,
       COUNT(1) OVER ( PARTITION BY CustomerID,Email ORDER BY SentDate ) AS 
       CountofContactsbyCustomerEmail
  FROM MarketingEmails
 WHERE DATEDIFF(dd,GETDATE(),TO_DATE( SentDate ) ) >= 90;