Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Oracle BI количество последних покупок клиентов в месяц  [new]
Evgeny2
Member

Откуда:
Сообщений: 111
Нужно по каждому клиенту найти его последнюю покупку, а затем посчитать в каждом месяце количество этих последних покупок.
Т.е на языке SQL это может выглядит как-то так:
select trunc(dt) as dt_month, count(client_id) as client_cnt
  from (select client_id, max(date_) as dt
        from tbl_client_buy
       where date_ < :set_date 
       group by client_id)
 group by trunc(dt)
 order by dt_month desc


Хотелось бы, имея логическую таблицу в репозитории с покупками клиентов, сформировать выборку используя только анализ.
Подскажите, пожалуйста, как это сделать (ну или любой другой вариант)?
29 май 17, 15:26    [20520413]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
terna
Member

Откуда:
Сообщений: 75
Evgeny2,
Столбец с месяцем определяете в анализе как:
max(monthname("date_" ) by "client_id")
Столбец с количеством как
count(distinct "client_id" by max(monthname("date_" ) by "client_id"))
29 май 17, 17:41    [20520976]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
terna
Member

Откуда:
Сообщений: 75
Evgeny2,

либо второй вариант.
Столбец с месяцем так же:
max(monthname("date_" ) by "client_id")
второй столбец просто client_id
ставите под определением формулы галочку "Обрабатывать как столбец атрибутов"
В представлениях добавляете таблицу среза: слева будет месяц, в показателях client_id, на client_id в показателях устанавливаете правило агрегирования "количество различных".
29 май 17, 17:46    [20520999]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
terna
Member

Откуда:
Сообщений: 75
Да, для того, чтобы учитывать год, видимо придется поменять очередность и тогда столбец месяца определяется как:
monthname(max("date_" by "client_id"))||' '||year(max("date_" by "client_id"))
29 май 17, 17:50    [20521017]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
Evgeny2
Member

Откуда:
Сообщений: 111
Спасибо terna.
Что-то новенькое увидел....
max (field1 by field2) - сейчас посмотрю, что это за фича.
30 май 17, 09:26    [20521972]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
Evgeny2
Member

Откуда:
Сообщений: 111
Evgeny2,

С месяцами получилось. Ура!!!

Но вот нужен еще один анализ, теперь уже по магазинам.
Тут уже
max(shop_name by cust_id)
не прокатывает, так как последний магазин в котором была осуществлена последняя покупка клиентом определяется по дате -
max(shop_id) keep (dense_rank last order by date)
!!!

Пытался сделать
max(EVALUATE_AGGR('max(..) keep (..)') by cust_id)
- физический SQL не строился до конца.
Судя по логам физический SQL сгенирился для первой колонки, и до второй колонки не дошел - это где должен считаться
 count(cust_id by max(shop_id by cust_id))


Ребята, помогите страдальцу!?

Задача такая:
Для клиентов найти последние магазины где они осуществляли покупки и для этих найденных магазинов посчитать клиентов с их последними покупками.
31 май 17, 19:08    [20528743]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
terna
Member

Откуда:
Сообщений: 75
Evgeny2,
вопрос вообще не тривиальный. Стандартными средствами не представляю как.
Я не очень умею пользоваться эвальюэйтами.
Думаю, конструкцию by с эвальюэйтом использовать бесполезно.
Можно попробовать evaluate_analitic('last_value (%1) over (partition by %2 order by %3)',...)
5 июн 17, 10:18    [20539275]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI количество последних покупок клиентов в месяц  [new]
Jack Carver
Member

Откуда: obi2ru.blogspot.com
Сообщений: 1685
жмяк 1, жмяк 2
5 июн 17, 11:22    [20539529]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить