у меня есть данные, как это:группы по диапазонам дат (Teradata)
Date User ID
2012-10-11 a
2012-10-11 b
2012-10-12 c
2012-10-12 d
2012-10-13 e
2012-10-14 b
2012-10-14 e
То, что я хочу сделать, это группа самым последним диапазоном два дня (в моем реальном запросе, будет 7 дней) на каждый день и получить количество различных идентификаторов пользователей.
Например, я хочу, чтобы результат выглядеть следующим образом:
Date count(distinct userIDs)
2012-10-12 4
2012-10-13 3
2012-10-14 2
Например, для 2012-10-12 я получить количество 4, потому что у меня есть «а», «б ', ' c ', и ' d '. "==> 'а' и 'б' приходят в предыдущий день, и 'C' и 'd' из того же день, 2012-10-12.
Аналогично, для 2012-10-13, я смотрю на 2012-10-13 и 2012-10-12, и я получаю 'с', 'd' и 'е'.
Тип данных столбца Дата - дата. Я использую Teradata.
Я пытался исследовать его, но не смог найти прямой ответ, который относится к моей ситуации. : -/Извините, если это повторение. Ваша помощь очень ценится. Спасибо!
Я уверен, что есть способ чтобы сделать это, используя функции окна, что-то вроде 'SELECT date, COUNT (different user_id) OVER (PARTITION BY date ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)' (что неверно, я попробовал). Я буду играть с этим сам, пока не выясню это! – BellevueBob