Маленький этюд (MSSQL)
От: 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ൒  
Дата: 14.08.23 16:38
Оценка:
Есть лог вида:

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, оконные функции недоступны.

мой подход был конвертировать в то, по чему можно делать дистинкт, что работает, но, интересно, есть ли решение лучше.
Отредактировано 14.08.2023 19:05 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ൒ . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.