0

我正在尝试计算同一字段中两个日期之间的平均时间。

基本上我有一个交易日期和每笔交易的 id 和每笔交易的客户 id。

我需要获取第一笔交易和第二笔交易之间的时间。我不介意在 excel 中计算两者之间的平均值,但我不知道如何从同一字段中提取两个日期。

数据库中每个客户的第一笔交易的 transaction.created_at 减去第二笔交易的 transaction.created_at。我可以提取交易日期,例如

select
customer.id,
transaction.created_at
count(transaction.id)
from transaction

having count(transaction.id) = 2

谢谢

4

2 回答 2

0

尝试以下方法来检索特定的客户交易计数:

Select
Customer.id,
count(transaction.id)
from transaction
where Customer.id = '10'

此处 10 指定customer id您已搜索的内容。您必须customer id在创建的 SP 中将此作为参数传递。

于 2013-09-26T10:09:47.197 回答
0

不确定这是否总是有 count(*) = 2?如果是这样,我认为您可以只使用最小值和最大值,不是吗?

/*
create table dbo.Example (tran_id int,created_at datetime,cust_id int)
insert dbo.example values (1,'10/1/2012',900)
insert dbo.example values (2,'10/2/2012',901)
insert dbo.example values (3,'10/18/2012',590)
insert dbo.example values (4,'10/10/2012',676)
insert dbo.example values (5,'10/11/2012',123)
insert dbo.example values (6,'10/17/2012',456)
insert dbo.example values (7,'10/9/2012',901)
insert dbo.example values (8,'10/30/2012',900)
insert dbo.example values (9,'10/4/2012',456)
insert dbo.example values (10,'10/17/2012',676)
*/
select 
cust_id,
max([created_at]) as [Last Date],
min([created_at]) as [First Date],
datediff(hh,min([created_at]) ,max([created_at])) as [Hours diff]
from example
group by cust_id
having count(*) = 2
order by cust_id
于 2013-09-29T04:39:32.217 回答