计算sql中属于同一组的日期差异

时间:2016-10-24 01:55:27

标签: sql oracle date duplicates

我有以下数据集:

ClassName | Dates     | ClassID
----------------
ClassA    | 21-Jun-16 | 1238
ClassA    | 27-Jun-16 | 1238
ClassB    | 14-Apr-11 | 1252
ClassB    | 14-Apr-11 | 1252
ClassC    | 26-Oct-15 | 1261
ClassC    | 21-Oct-15 | 1261

对于每个ClassName或ClassID组,我想要区分日期。

输出应具有以下格式 -

ClassName | Days     | ClassID
----------------
ClassA    | 5 | 1238
ClassB    | 0 | 1252
ClassC    | 4 | 1261

请建议! 谢谢!

1 个答案:

答案 0 :(得分:1)

在大多数数据库中,您可以执行以下操作:

select ClassName, ClassId,
       max(date) - min(date) as days
from t
group by ClassName, ClassId;

但是,减去日期的逻辑可能因数据库而异。