Это ответ на исходную версию вопроса.
Ваш вопрос состоит из двух частей.
Первая определяет правильные временные рамки. В PrestoDB недели не начинаются во вторник. Думаю, они начнутся в понедельник.
Другой - count(distinct)
. Я думаю, что Presto поддерживает это как оконную функцию. Итак, вы можете сделать:
select distinct date,
count(distinct user_id) over (partition by date_trunc('week', date - interval '1 day')
order by date
) as unique_users_since_tuesday
from t;
Обратите внимание, что это сформулировано как оконная функция, а не агрегирование.