powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
9 сообщений из 9, страница 1 из 1
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992254
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть люди и длительность их на стриме:
Имя длительность Дата (минут)Иванов 55 январьПетров 78 февральСидоров 3 ноябрь..ров 5 ноябрь
Для описанных данных видно, что распределение такое:
Процент сколько народу в диапазоне90-100% 180-90% 10-10% 2
Т.е. 78 взят за максимум.

Но если я укажу уже конкретный месяц - ноябрь, то картинка поменяется. Максимумом станет 5, поэтому распределение будет таким:
Процент сколько народу в диапазоне90-100% 160-70% 1
Во вторую строку попал Сидоров со своей тройкой.

Как в многомерном SSAS получить такое распределение?
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992276
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles Weyland,

Поставьте задачу более корректно. Вы где хотите получить распределение на показателях, на измерениях?

Сделайте вычисляемые показатели 0-10% 10-20% ... 90-100%. 10 штук. Поделите конкретные значение на ваш максимум.
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992298
Фотография iShvedsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles Weyland, если я правильно понял и если вопрос "про процентную ось" (ака размерность), то быстро посмотреть и поиграться можно такими параметрами размерности:
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992299
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сделал таблицу
IdFromToName1-1100-10%2102010-20%3203020-30%4304030-40%5405040-50%6506050-60%7607060-70%8708070-80%9809080-90%109010090-100%
И по ней "висящие в воздухе" (не связанное в кубе с другими мерами и измерениями) измерение с мерой, опишу на псевдокоде (ибо делал в интерфейсе:
Код: sql
1.
2.
3.
4.
[Measures].[From]=Minimum(From)
[Measures].[To]  =Maximum(To)

[Measures].MaxDuration = Maximum(длительность)


и меру
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE MEMBER CURRENTCUBE.[Распределение]
AS
    Aggregate(
            FILTER(
                [Зрители].[Имя].[Имя]
                , [Measures].[Длительность]       *100 /([Зрители].[Имя].[All], [Measures].MaxDuration) >  [Measures].[From]
                    and [Measures].[Длительность] *100 /([Зрители].[Имя].[All], [Measures].MaxDuration) <= [Measures].[To]
                    and [Measures].[Количество строк в таблице зрителей] > 0
            )
        ,[Measures].[Количество строк в таблице зрителей]
    )
, VISIBLE = 1;


Единственный косяк - это то, что [Зрители].[Имя].[All] снимает фильтры и MaxDuration считается не в текущем контексте, а вообще абсолютный максимум по данным. И если выбираю "Ноябрь", то максимум остаётся абсолютным. Очевидна причина, но пока не понял, как указать правильно. Кроме месяца там ещё куча всяких параметров.
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992300
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iShvedsky
Charles Weyland, если я правильно понял и если вопрос "про процентную ось" (ака размерность), то быстро посмотреть и поиграться можно такими параметрами размерности:

оо, тут что-то прикольное. Не знал, надо поэкспериментировать
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992345
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles Weyland
iShvedsky
Charles Weyland, если я правильно понял и если вопрос "про процентную ось" (ака размерность), то быстро посмотреть и поиграться можно такими параметрами размерности:

оо, тут что-то прикольное. Не знал, надо поэкспериментировать


Может вам сделать измерение из 10 элементов 0-9 ( 0-10% 10-20% ... 90-100%.) и а вашем MEMBER CURRENTCUBE.[Распределение] отталкиваетесь от currentmember этого элемента?
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992349
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Может вам сделать измерение из 10 элементов 0-9 ( 0-10% 10-20% ... 90-100%.) и а вашем MEMBER CURRENTCUBE.[Распределение] отталкиваетесь от currentmember этого элемента?

Так я как раз выше описал, что именно так и сделал.

Дискретизация вообще ничем не помогла, там чуть иначе, поэтому вернулся к своему решению.

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

Т.е. у меня есть особенная мера - "Самый долгий просмотр из всех зрителей". Можно выбрать "Ноябрь" и будет самый долгий просмотр среди ноябрьских зрителей. Или выбрать "мужики", тогда среди мужиков.
Если я пишу так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE MEMBER CURRENTCUBE.[Распределение]
AS
    Aggregate(
            FILTER(
                [Зрители].[Имя].[Имя]
                , [Measures].[Длительность]       *100 / [Measures].MaxDuration >  [Measures].[From]
                    and [Measures].[Длительность] *100 / [Measures].MaxDuration <= [Measures].[To]
                    and [Measures].[Количество строк в таблице зрителей] > 0
            )
        ,[Measures].[Количество строк в таблице зрителей]
    )
, VISIBLE = 1;


то в контексте "[Зрители].[Имя].[Имя]" у каждого зрителя будет своё персональное значение максимума и оно будет равняться единственному значению - его длительности. А чтобы взять максимум из всех зрителей, приходится писать так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE MEMBER CURRENTCUBE.[Распределение]
AS
    Aggregate(
            FILTER(
                [Зрители].[Имя].[Имя]
                , [Measures].[Длительность]       *100 /([Зрители].[Имя].[All], [Measures].MaxDuration) >  [Measures].[From]
                    and [Measures].[Длительность] *100 /([Зрители].[Имя].[All], [Measures].MaxDuration) <= [Measures].[To]
                    and [Measures].[Количество строк в таблице зрителей] > 0
            )
        ,[Measures].[Количество строк в таблице зрителей]
    )
, VISIBLE = 1;


Но тогда я снимаю вообще все фильтры со всех зрителей
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992398
PassedBI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Charles Weyland,

([Зрители].[Имя].[All], [Measures].MaxDuration) - не должна такая конструкция снимать фильтр с календаря, это же другое измерение и в данном кортеже вообще не представлено в явном виде, так что выбор на календаре таким и останется.
Попробуйте прям это выражение потестить отдельно, по зрителям будет одинаково, но по другим связанным измерениям должно меняться.
...
Рейтинг: 0 / 0
Как создать процентную ось с диапазонами 0-10%, 10-20% и т.д.?
    #39992426
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iShvedsky
Charles Weyland, если я правильно понял и если вопрос "про процентную ось" (ака размерность), то быстро посмотреть и поиграться можно такими параметрами размерности:


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


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