我正在尝试计算同一字段中两个日期之间的平均时间。
基本上我有一个交易日期和每笔交易的 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
谢谢
最佳答案
不确定这是否总是“Having 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
关于mysql - 2 一个 SQL 查询中同一列的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025172/