Есть ли способ рассчитать процентиль с помощью функции percentile_cont () в скользящем окне в Big Query? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть набор данных со следующими столбцами

  • город
  • пользователь
  • неделя
  • месяц
  • заработок

В идеале я хочу рассчитать 50% от percentile_cont (заработок, 0,5) сверх (разбиение по городам по месяцам в диапазоне от 1 предыдущей до текущей строки). Но Большой запрос не поддерживает формирование окон в percentile_cont. Может ли кто-нибудь помочь мне, если есть способ обойти эту проблему.

1 Ответ

0 голосов
/ 03 августа 2020

Если я правильно понимаю, вы можете агрегировать в массив, а затем разложить:

select t.*,
       (select percentile_cont(earning) over ()
        from unnest(ar_earnings) earning
        limit 1
       ) as median_2months
from (select t.*,
             array_agg(earnings) over (partition by city
                                       order by month
                                       range between 1 preceding and current month
                                      ) as ar_earnings
      from t
     ) t;

Вы не предоставляете образцы данных, но в этой версии предполагается, что month - это увеличивающееся целое число, которое представляет месяц. Возможно, вам потребуется отрегулировать range в зависимости от типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...