Посчитать количество user_id с минимум 1 заказом за каждые 2 месяца | Fine bi / SQL

Помогите пожалуйста понять, как в fine bi / sql посчитать количество уникальных user_id у которых есть 1 и более заказ за каждые 2 месяца в выбранном периоде.

Это нужно для создания сегмента пользователей.

В столбцах: order_date, user_id, order_id


Ответы (1 шт):

Автор решения: CrazyElf

Впрочем, даже и оконные функции, кажется, не нужны. Я вам сделаю набросок, потому что не знаю, что за диалект SQL у вас используется. Итак, как это можно решить:

  • Нужно перебрать все месяцы (но минус 1 месяц с конца) за данный период. Циклом.
  • Выбрать на каждом проходе цикла уникальных пользователей, у которых есть записи в вашей таблице за период [текущий месяц цикла, текущий месяц цикла + 1]
  • Посчитать через count сгруппировав по id пользователей и выбрать таких пользователей, у которых этот count совпадёт с длиной периода нашей выборки

Если непонятно, как сделать каждый конкретный шаг - пишите, подумаем. Но сначала попробуйте подумать и реализовать каждый шаг самостоятельно.

→ Ссылка