powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
8 сообщений из 8, страница 1 из 1
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747716
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Подскажите пожалуйста, как написать запрос:
Есть таблица TimeRows , в которой хранятся идентификаторы пользователей и временные интервалы с их длительностью в минутах.
Нужно посчитать сумму дэльт по каждой подгруппе, но если в подгруппе есть пересекающиеся диапазоны, то их рассматривать как один диапазон с минимальным (среди пересекающихся) StartTime и максимальным (EndTime) и суммировать уже разницу уже нового диапазона.

К примеру есть таблица:

UserIDStartTimeEndTimeDelta1472018-12-01 18:002018-12-01 22:002401472018-12-01 18:302018-12-01 22:302401472018-12-01 17:002018-12-01 21:302701472018-12-01 22:402018-12-01 23:00201472018-12-01 23:102018-12-01 23:30202082018-12-02 20:002018-12-02 21:00602082018-12-02 21:302018-12-02 23:0090

первые три записи суммировать нельзя т.к. диапазоны их пересекаются. Нужно посчитать дельту StartTime = 2018-12-01 17:00 - EndTime = 2018-12-01 22:30 дельта будет равна 330 мин. (а не 750)

С остальными записями всё ок, их диапазоны не пересекаются.

В итоге таблица должна получиться такой:

UserIDSumDelta14733014740208150
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747717
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(ошибся)upd: Конечно же EndTime - StartTime
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747743
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если диапазон 1 пересекается с диапазоном 2, тот ещё пересекается с диапазоном 3, но диапазоны 1 и 3 не пересекаются - как считать?
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747744
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у пересекающихся диапазонов разная дельта - какую брать после их объединения?
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747747
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Если у пересекающихся диапазонов разная дельта, то брать не готовую дельту, а считать её из максимального EndTime и минимального StartTime
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747749
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если диапазон 1 пересекается с диапазоном 2, тот ещё пересекается с диапазоном 3, но диапазоны 1 и 3 не пересекаются - как считать?


3-------------20
5--------------26
21--------------30


то дельту считать как 30-3
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747774
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULER Если диапазон 1 пересекается с диапазоном 2, тот ещё пересекается с диапазоном 3, но диапазоны 1 и 3 не пересекаются - как считать?


3-------------20
5--------------26
21--------------30


то дельту считать как 30-3поиском по "кончала" можно найти с полдюжины вариантов решения этой задачи :)
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
    #39747778
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULERсчитать её из максимального EndTime и минимального StartTimeА если они - у разных записей с разной дельтой?
MAULERто дельту считать как 30-3Ищите темы по словам "объединить диапазоны".
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с запросом.. Нужно правильно просуммировать.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]