如何计算交易数据
问题描述:
我有这样一个表,考虑我有大约500万条记录。如何计算交易数据
Transaction id|Amount|CustomerId|date
1 | 100 | 20 |1/1/2012
2 | 230 | 30 |2/2/2012
3 | 320 | 20 |2/3/2012
etc...
如何找到2012年每季度每位客户最近5次交易的总金额?
输出:季度|客户ID |总金额
1 | 20 | 40000
1 | 30 | 300000
2 ...etc...
请写一个有效的方法..
答
你应该张贴的ddl.But你可以尝试像this.It应该工作..
with mycte as
(
select customerid,datepart(qq,dt) as qtr,amount,
row_number() over(partition by
datepart (qq,dt),customerid order by dt desc,transaction id desc) as rn
from table where dt >= '01/01/2012'
)
select qtr,customerid,sum(amount) as amt
from mycte
where rn <= 5
group by qtr,customerid
如果您希望别人为您编写高效的查询,那么您必须通过提供ddl,索引等和一些示例数据以及您使用的方法来做一些努力工作 直到现在。
你有什么尝试?你能提供更多的样本输入以及预期的输出吗?如果一个客户一个季度只有2笔交易会怎样? – Ghost 2012-07-20 16:11:52