我在SQL Server中工作,我有一个CustomerID,VisitDate,Sales和Quantity表。 我试图通过访问来计算平均支票,所以客户在第一次重复购买,第二次重复购买等时购买了多少钱。此外,每次购买之间需要多少时间。识别客户的唯一身份访问
任何指导将有所帮助, 谢谢!
我在SQL Server中工作,我有一个CustomerID,VisitDate,Sales和Quantity表。 我试图通过访问来计算平均支票,所以客户在第一次重复购买,第二次重复购买等时购买了多少钱。此外,每次购买之间需要多少时间。识别客户的唯一身份访问
任何指导将有所帮助, 谢谢!
您可以使用row_number()
和条件聚合。下面是一个的exaple:
select customerid, avg(sales) as avgsales,
max(case when segnum = 1 then sales end) as sales_01,
max(case when segnum = 2 then sales end) as sales_02,
max(case when segnum = 3 then sales end) as sales_03
from (select t.*, row_number() over (partition by customerid order by visitdate) as segnum
from table t
) t
group by customerid;
顺便说一句,你的问题确实应该包括样本数据,预期的效果,并且该表的布局,
谢谢戈登!下一次,我会包含示例数据。 – phd4212 2014-11-04 16:38:41
你会注意到这个问题很少收到。我非常清楚地理解(这是一个典型的数据分析查询),但其他人显然没有。 – 2014-11-04 23:05:28
的,什么是你试试? – SMA 2014-11-04 16:16:04
你到目前为止做了什么? – 2014-11-04 16:16:23
为什么你称这个问题为“识别独特的访问”?这个问题与这个问题有什么关系? – 2014-11-04 16:17:33