Вычислить разницу дат, принадлежащих к одной группе в sql

#sql #oracle #date #duplicates

#sql #Oracle #Дата #дубликаты

Вопрос:

У меня есть следующий набор данных:

 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. Пожалуйста, пометьте свой вопрос базой данных, которую вы используете.

2. Который DBMS вы используете. Также это всегда будет две записи на Class

3. Да, это всегда будет две записи на класс

Ответ №1:

В большинстве баз данных вы можете сделать что-то вроде этого:

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

Однако логика вычитания дат может отличаться в разных базах данных.