mysql - 2 一个 SQL 查询中同一列的日期

标签 mysql sql sql-server

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

基本上我有一个交易日期和每笔交易的 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/

相关文章:

mysql - 帮助Mysql数据库设计

sql - 如何统计文件被修改为特定日期时间格式的时间

sql - PK、FK约束设计

javascript - 关于node.js中的MySQL模块以及与mySQL数据库的并发连接

mysql - SQL - 交叉 'Crossed' 表

mysql - 私有(private)消息系统。列出每个对话的最后一条消息

mysql - 如何使用 IF 条件将旧 SQL 转换为最新 SQL?

sql-server - 告诉我 SQL Server 全文搜索器疯了,不是我疯了

mysql - 使用sequelize和mysql,无法更新内容

sql-server - 删除或不删除存储过程中的临时表