Аналитические услуги с ненормализованной таблицей - PullRequest
0 голосов
/ 11 мая 2010

У меня есть таблица с несколькими миллионами строк. Каждая строка представляет пользователя session. Существует столбец с именем user, который не является уникальным. Может быть несколько сеансов на пользователя. Я хочу использовать службы анализа, чтобы получить дополнительные свойства для каждого пользователя. Пример: Сколько пользователей (уникальных!) Провели сеанс более, чем x минут. Как это возможно без изменения базы данных. Примечание. Справочная таблица отсутствует, и я не могу ее создать.
Сейчас я могу спросить, сколько сеансов длилось больше, чем х минут.

Ответы [ 2 ]

1 голос
/ 12 мая 2010

У вас уже есть куб служб Analysis Services в верхней части этой таблицы? Если вы это сделаете, вы можете превратить столбец «Пользователь» в измерение «Факт», а затем использовать измерение «Пользователь» в качестве основы для уникального расчета.

Какая структура у вас уже есть?

Редактировать: ОК. Итак, вы создали Фактор пользователя, MDX для вычисляемого члена может выглядеть следующим образом:

WITH MEMBER UserCount AS Count(Filter([User].[User].[User], [Measures].[YourMeasure] > 10)),
NON_EMPTY_BEHAVIOR = { [Measures].[YourMeasure] }
SELECT UserCount ON 0 FROM [Cube]

Вы можете поместить это в куб в качестве вычисляемого элемента, см. Вкладку «Расчеты» в конструкторе куба в Visual Studio.

Возможно, вам потребуется изменить «Count» на «DistinctCount» в зависимости от настроек.

Обратите внимание, что флаг "NON_EMPTY_BEHAVIOR" должен быть установлен правильно, я предположил, что у вас есть мера, основанная на продолжительности сеанса?

0 голосов
/ 17 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...