powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Непростая задача про АБСД анализ.
13 сообщений из 13, страница 1 из 1
Непростая задача про АБСД анализ.
    #32761082
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть измерение Номенклатура - несбалансированное парент-чайлд. Количество элементов 110000. Есть измерение Магазины в которых эта номенклатура продается. Суть АБСД анализа - определить ассортимент номенклатуры, составляющий для каждого магазина 85% от прибыли - это будет группа А. Для групп БСД тоже есть границы по прибыли. Сложность в том, что ассортимент для вхождения в группы надо анализировать не весь, а в рамках соответсвующих товарных групп. Товарные группы находятся на уровне 4 измерения номенклатура. Вот и не понятно как сделать хитрый МДХ, где по строкам номенклатура, по колонкам магазины, а в области данных - группа номенклатуры для магазина. Может кто подскажет?
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761250
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если у вас номенклатура - parent/child dimension. То почему же Товарные группы находятся на 4 уровне.
Может parent/child это лишнее?
Вы можете более подробно описать реальную структуру фактически имеющихся данных в вашем измерении?
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761279
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фактические данные - это несбалансированное парент-чайлд измерение, с максимальным количеством уровней 8. С коммерческим директором проанализировали дерево измерения и решили, что анализ АБСД стоит производить в рамках потомков элементов, находящихся на 4 уровне измерения - там только группы, глубже уже появляются элементы. Так что смотрю я на функцию Rank() и думаю с какой стороны к ней подойти.
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761762
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Вжик:

на 4 уровне измерения - там только группы, глубже уже появляются элементы. Так что смотрю я на функцию Rank() и думаю с какой стороны к ней подойти.

Я бы на Вашем месте увидел Ваш 4-й уровень иерархии через диалоговое окошко работы с подмножествами в OLAP-клиенте Cognos PowerPlay. Перетащил бы в отчет это подмножество (которое всегда будет отслеживать, не появились ли новые элементы на 4-м уровне, и если появились - они появятся в отчете автоматически). А потом бы применил к этим мемберам сначала функцию ранжирования, а затем взял бы нарастающий процент от базы, где база - сумма всех мемберов. В итоге я бы увидел, сколько мемберов дают первые N1%, сколько мемберов - первые N2% и т.д.
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761839
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привожу на примере FoodMart. Если есть вопросы к нижеприведенному - рад буду прокомментировать.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
with

member [Measures].ranking as 
   'Rank(Product.CurrentMember, 
   order([Product].[Product Subcategory].members, [Measures].[Store Sales], BDESC))'
member [Measures].ABC as 
'iif(rank(Product.CurrentMember, toppercent([Product].[Product Subcategory].members, 80,[Measures].[Store Sales])) > 0, "A", 
 iif(rank(Product.CurrentMember, toppercent([Product].[Product Subcategory].members, 95,[Measures].[Store Sales])) > 0, "B", "C"))' 

select  
 crossjoin({[Customers].[All Customers].[USA].[WA], descendants([Customers].[All Customers].[USA].[WA], [Customers].[City])}, 
             {[Measures].[Store Sales], [Measures].ranking,  [Measures].ABC}) on columns,

{[Product].[All Products], order([Product].[Product Subcategory].members, ([Customers].[All Customers].[USA].[WA], [Measures].[Store Sales]), BDESC)} on rows

from Sales
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761842
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuriiЯ бы на Вашем месте увидел Ваш 4-й уровень иерархии через диалоговое окошко работы с подмножествами в OLAP-клиенте Cognos PowerPlay. Перетащил бы в отчет это подмножество (которое всегда будет отслеживать, не появились ли новые элементы на 4-м уровне, и если появились - они появятся в отчете автоматически). А потом бы применил к этим мемберам сначала функцию ранжирования, а затем взял бы нарастающий процент от базы, где база - сумма всех мемберов. В итоге я бы увидел, сколько мемберов дают первые N1%, сколько мемберов - первые N2% и т.д.

вас человек спросил о МДХ для MS AS, а вы ему про Cognos, в котором МДХ НЕТ
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761888
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот немного другая вариация

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
with

member [Store].[WA ABC] as '
iif(rank(Product.CurrentMember, toppercent([Product].[Brand Name].members, 80,([Store].[All Stores].[USA].[WA], [Measures].CurrentMember))) > 0, "A", 
iif(rank(Product.CurrentMember, toppercent([Product].[Brand Name].members, 95,([Store].[All Stores].[USA].[WA], [Measures].CurrentMember))) > 0, "B", "C"))'

member [Store].[Seattle ABC] as '
iif(rank(Product.CurrentMember, toppercent([Product].[Brand Name].members, 80,([Store].[All Stores].[USA].[WA].[Seattle], [Measures].CurrentMember))) > 0, "A", 
iif(rank(Product.CurrentMember, toppercent([Product].[Brand Name].members, 95,([Store].[All Stores].[USA].[WA].[Seattle], [Measures].CurrentMember))) > 0, "B", "C"))'

member [Store].[Bellingham ABC] as '
iif(rank(Product.CurrentMember, toppercent([Product].[Brand Name].members, 80,([Store].[All Stores].[USA].[WA].[Bellingham], [Measures].CurrentMember))) > 0, "A", 
iif(rank(Product.CurrentMember, toppercent([Product].[Brand Name].members, 95,([Store].[All Stores].[USA].[WA].[Bellingham], [Measures].CurrentMember))) > 0, "B", "C"))'


set Set1 as 'topcount([Product].[Brand Name].members, 1000, ([Store].[All Stores].[USA].[WA], [Measures].[Store Sales]))'

select  {[Store].[All Stores].[USA].[WA],  [Store].[WA ABC], 
             [Store].[All Stores].[USA].[WA].[Seattle],  [Store].[Seattle ABC],
             [Store].[All Stores].[USA].[WA].[Bellingham], [Store].[Bellingham ABC]} on columns,

crossjoin({[Product].[All Products], Set1}, {[Measures].[Store Sales]}) on rows

from Sales
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32761917
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересный Вопрос - "хватает ли ума" у MDX query процессора, не рассчитывать каждый раз

Код: plaintext
toppercent([Product].[Product Subcategory].members,  80 ,[Measures].[Store Sales]) 

ведь в одном столбце, его результат не меняется, ведь контекст вычисления не изменяется
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32762582
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное! Примерно так и я мыслил на прошедших выходных. Буду пробовать. А по поводу "хватает ли ума" ответ такой - сеты считаются только раз, так что при нормальном подходе и результат будет соответствующий.
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32762593
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не секрет - откуда примеры? Из собственного опыта или литературы? Если из литературы - нельзя ли название?
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32762607
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникает вопрос, если сеты считаются при процессинге - то не проще ли сделать ABC-классификацию в SQL?
Лично я делаю именно так, т.к. в Cognos PowerPlay runtime-вычисления не очень развиты. И, к тому же, SQL может быть источником для реляционных отчетов в ReportNet etc., а MDX-нет.
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32762615
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока я делаю так, потому, что применение МДХ обеспечивает гибкость. SQL, по моему мнению - это больше шаблонности.
...
Рейтинг: 0 / 0
Непростая задача про АБСД анализ.
    #32762626
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикЕсли не секрет - откуда примеры? Из собственного опыта или литературы? Если из литературы - нельзя ли название?

экспромт
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Непростая задача про АБСД анализ.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]