У меня есть этот код, где я пытаюсь подсчитать каждого отдельного пользователя , перечисленного в течение 30 дней до скользящего окна , за последние 40 дней.
например: 12 февраля (12 февраля) / 02) Мне нужно сосчитать всех перечисленных пользователей с 13 января по 12 февраля (30 дней), затем с 11 февраля мне нужно сосчитать с 12 января по 11 февраля и так далее. Мне нужно сделать это ко многим другим датам, есть ли способ сделать это в Presto? видя, что он не поддерживает коррелированный подзапрос, и когда я пытаюсь выполнить приведенный ниже код, он возвращает «Данный коррелированный подзапрос не поддерживается»
WITH
get_date as
(
select
distinct date_trunc('day',date(uph.last_login)) as dates
from user_profile_id_history uph
where uph.last_login >= date('2020-02-04')-interval '30' day and uph.last_login <= ( date'2020-02-04')
order by 1 desc
)
select
get_date.dates,
(
case when (dates >= date('2020-02-04')-interval '30' day and dates <= ( date'2020-02-04'))
then
(
select
count(distinct CASE WHEN date_trunc('month',date(up.registration_time)) <= date_trunc('month',uph.last_login) THEN uph.userid END)
FROM
user_profile_id_history uph
LEFT JOIN
user_profile up ON uph.userid = up.userid
where uph.last_login >= dates-interval '30' day and uph.last_login <= dates
) end
) as mauser
from get_date
group by 1`