У меня есть две разные временные метки: одна для создания учетной записи и одна для первого использования продукта. Если первое использование продукта менее чем через 24 часа с момента создания учетной записи, ему присваивается 1 в столбце фиктивной переменной, если нет, ему присваивается 0. Я хочу затем сгруппировать их по отдельным дням, а не каждая отдельная отметка времени.
Я попробовал GROUP BY, а затем различные комбинации DATEADD
и DATEDIFF
, а также создал функцию для отображения дат между двумя днями, и ничего не помогло.
SELECT data.ORIGINAL_TIMESTAMP AS "data_timestamp",
data2.ORIGINAL_TIMESTAMP AS "data2_timestamp",
CASE
WHEN DATEDIFF(minute, data.ORIGINAL_TIMESTAMP, data2.ORIGINAL_TIMESTAMP) <=1440 THEN 1
ELSE 0
END AS "24_hour_dummy_variable",
((SUM("24_hour_dummy_variable")) OVER (
ORDER BY data.ORIGINAL_TIMESTAMP ASC rows between 999 preceding AND current row)*100) AS "running_avg"
FROM data
LEFT JOIN data2
ON data.ACCOUNT = data2.ACCOUNT
GROUP BY DATEADD(day, DATEDIFF(day, 0, org_created.ORIGINAL_TIMESTAMP), 0)
Недопустимые типы аргументов для функции 'DATE_DIFFTIMESTAMPINMONTHS'