У меня есть функция, написанная на python для красного смещения, код ниже (вычисляет рабочие дни между двумя датами "Южноафриканские праздники и выходные"):
CREATE OR REPLACE FUNCTION b_days (start_date timestamp, end_date timestamp)
RETURNS INTEGER IMMUTABLE as $$
from pandas import date_range
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday
код очень быстрый при тестировании на
Блокнот Jupyter
запустить функцию простого выбора: select business_days('2018-06-29','2018-07-02')
вернуть 2 в качестве ответа
с использованием CTE
with cte as(
select id, sdate, edate
from bigtable --with million rows
)
select id, sdate, edate, business_days(sdate,edate)
from cte
но он работает без остановки, когда я говорю:
select id, sdate, edate, business_days(sdate,edate)
from bigtable --with million rows