Информация об изменениях

Сообщение Маленький этюд (MSSQL) от 14.08.2023 16:38

Изменено 14.08.2023 19:05 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ൒

Маленький этюд (MSSQL)
Есть лог вида:

Date (nin-unique) Log
15-Jan-2023 18:45:53 Whatever
...


Нужно написать функцию, принимающую @DateFrom + @DateTo, определющие интервал выборки и возвращающую fill factor % заполненности лога поминутно, почасово, подневно. Пусть будет только поминутно. Процент вычисляется как % наличие записей на каждую и минут внутри интервала. то есть если в логе 1 запись как вверху, и интервал 15-Jan-2023 18:00:00 — 15-Jan-2023 19:00:00 (для педантов — "с" включаем, "по" — исключаем), то % будет 1/60 = 1.(6)%, если будет 500 записей датированных той же самой минутой, то результат не поменяется, если будет запись, например, 15-Jan-2023 18:46:53, то результат увеличиться вдвое.

должно работать быстро, решение необходимо для MSSQL, оконные функции недоступны.

мой подход был конвертировать в то, по чему можно делать дистинкт, что работает, но, интересно, есть ли решение лучше.
Маленький этюд (MSSQL)
Есть лог вида:

Date (nin-unique) Log
15-Jan-2023 18:45:53 Whatever
...


Нужно написать функцию, принимающую @DateFrom + @DateTo, определющие интервал выборки и возвращающую fill factor % заполненности лога поминутно, почасово, подневно. Пусть будет только поминутно. Процент вычисляется как % наличие записей на каждую из минут внутри интервала. то есть если в логе 1 запись как вверху, и интервал 15-Jan-2023 18:00:00 — 15-Jan-2023 19:00:00 (для педантов — "с" включаем, "по" — исключаем), то % будет 1/60 = 1.(6)%, если будет 500 записей датированных той же самой минутой, то результат не поменяется, если будет запись, например, 15-Jan-2023 18:46:53, то результат увеличится вдвое.

должно работать быстро, решение необходимо для MSSQL, оконные функции недоступны.

мой подход был конвертировать в то, по чему можно делать дистинкт, что работает, но, интересно, есть ли решение лучше.