2017-01-10 73 views
0

我有一個請求,向我們的營銷組提供唯一電子郵件地址列表。我可以生成沒有問題的列表。他們現在想要添加使用該電子郵件地址的最新日期。電子郵件地址的信息位於名爲customer的表格中,並且交易日期位於名爲activity的表格中。這兩個表由一個帳號字段連接。 如果我編寫代碼 select c.email, a.transactiondate from customer c join activity a on c.account = a.account where a.transactiondate between '12/1/2016' and '12/31/2016' 我最終得到了多個電子郵件的交易日期。這不是很多,但營銷人員不想處理它。SQL消除集合中的重複日期和最大日期

向select添加distinct將減少數量,但只能通過電子郵件和交易日期的組合來減少數量。我認爲我真正需要的是獨特的電子郵件,然後是該帳號的最高日期。

任何幫助,非常感謝。

回答

0

您需要通過電子郵件進行分組,並使用聚合函數來獲取最近的日期。

select c.email, max(a.transactiondate) 
from customer c join activity a on 
c.account = a.account 
where a.transactiondate between '12/1/2016' and '12/31/2016' 
group by c.email 
+0

這個作品完全謝謝你 – TheVavs