Вычислите покупателей, впервые совершивших покупку, и повторных покупателей с помощью запросов MAQL на платформе GOOD-DATA

Недавно я работал с платформой GOOD-DATA. У меня нет такого большого опыта в MAQL, но я работаю над этим. Я сделал некоторые метрики и отчеты на платформе GOOD-DATA. Недавно я попытался создать метрику для подсчета общего числа покупателей, покупателей в первый раз и постоянных покупателей. Я создал эти три отчета и работает отлично. Но когда я пытаюсь добавить родительский фильтр по дате заказа, покупатели впервые и повторяющиеся покупатели ошибаются. пожалуйста, посмотрите на следующие запросы.

Я могу узнать правильные значения, используя запросы sql.

MAQL-запросы:

ОБЩЕЕ ЗАКАЗЫ- ВЫБЕРИТЕ СЧЕТЧИК(NexternalOrderNo) ПО №КЛИЕНТА БЕЗ PF ВСЕГО ПЕРВЫХ ПОКУПАТЕЛЕЙ- ВЫБЕРИТЕ СЧЕТЧИК(CustomerNo) WHERE (ОБЩИЙ ЗАКАЗ WO PF=1) БЕЗ PF ВСЕГО ПОВТОРЯЮЩИХСЯ ПОКУПАТЕЛЕЙ - ВЫБЕРИТЕ СЧЕТ(CustomerNo) WHERE (ВСЕГО ЗАКАЗА WO PF>1) БЕЗ PF

Может ли кто-нибудь предложить логику для поиска этих значений с помощью MAQL


person KrishnKumar.K    schedule 13.02.2014    source источник


Ответы (2)


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

Не обязательно ставить в метрике "без pf". Этот пункт запрещает применение фильтра, поэтому при его удалении там будет использоваться родительский фильтр. И вы, вероятно, получите то, что хотите. В частности, измените это:

SELECT COUNT(CustomerNo) WHERE (TOTAL ORDER WO PF>1) WITHOUT PF

to:

SELECT COUNT(CustomerNo) WHERE (TOTAL ORDER WO PF>1)
person byrot    schedule 13.02.2014
comment
Большое спасибо за ваши ценные комментарии,. - person KrishnKumar.K; 20.02.2014

Единственное, чего здесь не хватает, так это «ВСЕ ВО ВСЕХ ДРУГИХ ИЗМЕРЕНИЯХ», иначе «ВСЕ ДРУГИЕ». Это ключевое слово блокирует и переопределяет все атрибуты во всех других измерениях, предотвращая их влияние на показатель. Подробнее об этом можно прочитать в Справочном руководстве по MAQL.

ПЕРВЫЕ ПОКУПАТЕЛИ:

SELECT COUNT(CustomerNo) 
WHERE (SELECT IFNULL(COUNT(NexternalOrderNo), 0) BY Customer ID, ALL OTHER) = 1 

ПОВТОРЯЮЩИЕСЯ ПОКУПАТЕЛИ:

SELECT COUNT(CustomerNo) 
WHERE (SELECT IFNULL(COUNT(NexternalOrderNo), 0) BY Customer ID, ALL OTHER) > 1 
person Josef Pithart    schedule 14.02.2014
comment
Большое спасибо за ваш ценный комментарий. - person KrishnKumar.K; 20.02.2014