-
да, спасибо
> ROLLUP ?
и CUBE рулят! (и чтение мануалов.. тоже рулит :))
ps В MSSQL практически также ... GROUP BY F1,F2 WITH CUBE
-
> и чтение мануалов.. тоже рулит
Всегда
-
да да да !!!
-
> Возникла ситуация, когда могут перекрываться промежутки, > т.е. StartedAt больше, чем EndedAt в предыдущей строке. >
И че? Что посчитать то надо? datediff по строке сколько один процесс занял и игого по всем? так при чем тут предыдущие строки? Или у тебя в одной строке Started позже Ended? Ну тогда в консерватории что-то менять надо..
-
> Не понял что значит 1600 и 1200. Там полный timestamp хранится. > Сумма будет равна количеству секунд между (01.12-12.12), > т.е. сумма двух промежутков, минус их пересечение.
То есть тебе сначала надо схлопнуть все интервалы, а потом ? 1, 01.01.01 12:35:00, 01.01.01 13:35:00 2, 01.01.01 12:36:00, 01.01.01 13:36:00 3, 01.01.01 13:39:00, 01.01.01 13:40:00 4, 01.01.01 14:35:00, 01.01.01 15:35:00 5, 02.01.01 12:35:00, 03.01.01 13:35:00 6, 03.01.01 14:35:00, 01.01.01 13:35:00
Что должно быть на выходе? Почему именно так?
> Единственное, что приходит в голову - это поставить триггер > на добавление записи и если StartedAt меньше последнего > EndedAt, то делать его равным последнему EndedAt. Тогда > запрос будет тривиальным.
Самое гнусное что можно придумать - это "корябать" входные данные под удобство запроса...
|