首页 > 解决方案 > 如何使用 SQL 获取 2 列之间日期差异的计数(值的分布)?

问题描述

希望有人可以提供帮助;我有 2 个可以与列连接的表ID

表 1 中有一列created_date,表 2 中的列是firstorderdate。我想从创建日期中减去第一个订单日期以获取天数,然后获取理想降序排列的不同值的计数。实际上,我正在尝试查看日期差异的分布。

我创建了一个 SQL fiddle 来帮助显示我的架构可能是什么样子。我的日期列可以包含空值,如果有意义的话,我只对它们都不为空感兴趣。

http://sqlfiddle.com/#!9/9adbca

提前致谢

标签: sqloracledistribution

解决方案


从您提供的 sqlfiddle 假设 MySQL。

SELECT DATEDIFF(t2.FirstOrderDate, t1.created_date) as 'DaysBetween'
       , Count(1)
FROM Table1 t1
inner join Table2 t2
    on t1.ID = t2.ID
WHERE t2.FirstOrderDate is not null
and t1.created_date is not null
GROUP BY DATEDIFF(t2.FirstOrderDate, t1.created_date)

推荐阅读