SQL帮助-获取购买和联接ID的计数

时间:2018-12-10 22:02:29

标签: sql sql-server

  1. 我想计算在一定时间内购买商品A,B,C的人数。产品可以多次购买。因此,每个人ID可能会根据其在给定时间内的购买行为分为两列或更多列。

  2. 然后,我需要从不同的表中提取每种产品的实际人员ID及其邮件ID。

Purchase Table

MailID table

1 个答案:

答案 0 :(得分:0)

这看起来像是一个测试问题,但是在这里:

对于#1,我假设即使每个人多次获得产品,您也只希望对每个人进行一次计数,那么您的计数就不同。因此代码如下所示:

select [Product Purchase], count(distinct [Person ID]) from [Purchase Table] where [Time Stamp] between <start> and <end>

对于#2,这似乎是联接:

select distinct [Product Purchase], pt.[Person ID], [Mail ID] from [Purchase Table] pt join [MailID Table] mt on pt.[Person ID] = mt.[PersonID]

我希望我不会为你做作业。