0 / 0 / 0
Регистрация: 30.03.2021
Сообщений: 2
1

Объединение интервалов дат в случае пересечения или соприкосновения этих интервалов

30.03.2021, 22:30. Показов 6294. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер.

Не могу решить задачу.
Нужно написать запрос, который по интервалам объединит эти интервалы в случае если они пересекаются или граничат.

Дано:

SQL
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE Quest(start_date DATE, end_date DATE);
 
INSERT INTO Quest VALUES('2020-01-01', '2020-01-15');
INSERT INTO Quest VALUES('2020-01-13', '2020-01-30');
INSERT INTO Quest VALUES('2020-02-01', '2020-02-05');
INSERT INTO Quest VALUES('2020-02-15', '2020-02-27');
INSERT INTO Quest VALUES('2020-02-16', '2020-02-19');
INSERT INTO Quest VALUES('2020-02-03', '2020-02-16');
INSERT INTO Quest VALUES('2020-03-01', '2020-05-04');
INSERT INTO Quest VALUES('2020-06-12', '2020-06-22');
INSERT INTO Quest VALUES('2020-04-17', '2020-06-19');
Результат должен быть:
2020-01-01, 2020-01-30
2020-02-01, 2020-02-27
2020-03-01, 2020-06-22
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2021, 22:30
Ответы с готовыми решениями:

Создание запроса в MS Access для вывода интервала дат с учетом пересечения этих интервалов
Доброго времени суток дамы и господа как то на этом форуме мне очень помогли с задачей похожего...

Пересечение интервалов дат в Excel. Вывод дат пересечения интервалов
Добрый день. Помогите пожалуйста. Мне надо найти совпадения в периодах работы одного и того же...

На прямой задано n числовых интервалов. Определите, образует ли объединение этих интервалов один интервал
На прямой задано n числовых интервалов. Определите, образует ли объединение этих интервалов один...

Массивы в Delphi (Console): Определить, является ли интервалом объединение этих интервалов
Даны действительные числа a1, a2, ... , a2n. Эти точки определяют n интервалов числовой оси (a1,...

2
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
31.03.2021, 17:02 2
вот здесь в конце смотрите, было недавно
1
0 / 0 / 0
Регистрация: 30.03.2021
Сообщений: 2
31.03.2021, 21:05  [ТС] 3
grgdvo,

Спасибо. Помогли найти еще такой вариант:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT MIN(start_date) AS x_start_date, MAX(end_date) AS x_end_date
  FROM (
         SELECT  start_date, end_date, SUM(sog) OVER(ORDER BY start_date,end_date) AS grp_id
           FROM (
                  SELECT start_date, end_date,
                         CASE 
                           WHEN MAX(end_date) 
                               OVER(ORDER BY start_date, end_date 
                                        ROWS BETWEEN unbounded preceding
                                                         AND 1 preceding
                                   ) >= start_date
                           THEN 0 
                           ELSE 1 
                         END AS sog 
                    FROM quest t
                ) v0
       ) v1
 GROUP BY grp_id
 ORDER BY x_start_date;
0
31.03.2021, 21:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2021, 21:05
Помогаю со студенческими работами здесь

Определить количество интервалов нулей, интервалов единиц и выбрать минимальное из них
Есть последовательность из N чисел 0 и 1.Интервалом нулей назовём такую её непрерывную...

Отличие доверительных интервалов от прогнозных интервалов
Всем доброго вермени года! Подскажите в чем разница между доверительными интервалами и...

Программа по нахождению пересечения интервалов
помогите пожалуйста написать программу по нахождению пересекаются ли интервалы или найдите...

Объединение интервалов
Здравствуйте! Подскажите, плиз, как объединить интервала для таблицы на SQL? В таблице имеются...

Оконные функции для интервалов дат
Доброго времени суток! Имеется таблица по развозу товара разными авто (MS SQL 2012): CAR| ...

Является ли интервалом объединение интервалов
2. Даны действительные числа a1, a2, ... , a2n. Эти точки определяют n интервалов числовой оси (a1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru