2016-06-27 3 views
0

Я пытаюсь произвести полностью обновленный набор чисел каждую неделю, вытягивая со стола в улье. Сейчас я с помощью этого метода:Подсчет по неделям в улье

SELECT 
COUNT(DISTINCT case when timestamp between TO_DATE("2016-01-28") and TO_DATE("2016-01-30") then userid end) as week_1, 
COUNT(DISTINCT case when timestamp between TO_DATE("2016-01-28") and TO_DATE("2016-02-06") then userid end) as week_2 
FROM Data; 

Я пытаюсь получить что-то больше вдоль линий:

SELECT, Месяц (метки времени), неделя (метка времени), COUNT (DISTINCT Идентификатор_пользователя) ИЗ Данные Группа По месяцам, неделям

Но моя неделя проходит с воскресенья по субботу. Есть ли более эффективный способ сделать это, что работает в ВИЧ?

ответ

1

Я вижу, что вам нужны данные, которые нужно сгруппировать по неделям. вы можете просто сделать это:

SELECT weekofyear(to_date(timestamp)), COUNT (DISTINCT userid) FROM Data Group By weekofyear(to_date(timestamp)) 
+0

Я попытался это в какой-то момент, но weekofyear начинает свою неделю в понедельник, где мне нужно начать неделю в воскресенье. Я не мог понять, как это изменить. Но ваше решение будет именно тем, что я хочу, всего на один выходной день. EDIT: возможно ли увеличить временную метку на день, чтобы обмануть неделю? –