Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Может ли куб решить такое? / 14 сообщений из 14, страница 1 из 1
04.06.2004, 14:03
    #32548605
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Предположим в таблице есть три поля

SessionKey
CustomerKey
SectionKey

- это факты

если выразить это SQL, то получится вот что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select SectionKey,
         Frequency,
         Population = count(distinct CustomerKey)
  from (select SectionKey, 
                   CustomerKey, 
                   Frequency = count(distinct SessionKey)
            from Fact
            group by SectionKey, CustomerKey) t
  group by SectionKey, Frequency

Если делать описанную таблицу фактом, то Frequency можно сделать калькулируемым членом. Но как потом сделать по нему измерение?
...
Рейтинг: 0 / 0
04.06.2004, 14:24
    #32548655
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Немного уточню задание

Предположим в таблице есть три поля

SessionKey - Вход пользователя на сайт
CustomerKey - Пользователь инет
SectionKey - Тематика сайта
Date - дата входа на сайт

- это факты

если выразить это SQL, то получится вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select SectionKey,
         Frequency,
         Population = count(distinct CustomerKey)
  from (select SectionKey, 
                   CustomerKey, 
                   Frequency = count(distinct SessionKey)
            from Fact
            where Date between StartDate and EndDate
            group by SectionKey, CustomerKey) t
  group by SectionKey, Frequency

результат примерно такой

SectionKey Frequency Population
Спорт 3 7
Спорт 2 12
Погода 1 3
Порно 13 17

Если делать описанную таблицу фактом, то Frequency можно сделать калькулируемым членом. Но как потом сделать по нему измерение?
Можно ли кубом получать такие отчеты?
...
Рейтинг: 0 / 0
04.06.2004, 15:37
    #32548838
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Неужели сложная задача?
...
Рейтинг: 0 / 0
04.06.2004, 16:00
    #32548887
Rubik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Задача может и не сложная, но не очень понятна постановка вопроса.

Если делать описанную таблицу фактом, то Frequency можно сделать калькулируемым членом. Но как потом сделать по нему измерение?
Можно ли кубом получать такие отчеты?


что вы называете "калькулируемым членом"?
какие конкретно отчеты вы хотите "получать кубом"?
...
Рейтинг: 0 / 0
04.06.2004, 16:08
    #32548911
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Old NickНемного уточню задание

Предположим в таблице есть три поля

SessionKey - Вход пользователя на сайт
CustomerKey - Пользователь инет
SectionKey - Тематика сайта
Date - дата входа на сайт

- это факты

если выразить это SQL, то получится вот что:

А в чем задача то? Что обозначает "это", которое выражается SQL запросом?
Растолкуйте пожалуйста смысл вкладываемый Вами в Frequency и Population, ибо трактовать смысл вашего SQL запроса можно 1000-ю способов
...
Рейтинг: 0 / 0
04.06.2004, 16:24
    #32548935
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Прошу прощения. Я почему подумал что Frequency и Population без перевода понятно. :-)

Frequency - это частота посещения одним пользователем одной тематики. Получается при первой агрегации по CustomerKey (Пользователю) и SectionKey (Тематика). Получаем вариации посещения:

1 Visit
2 Visits
3 Visits
4+ Visits - четыре и более посещения

А второй группировкой по уже полученному результсету получаем количество пользователей для каждой тематики и частоты посещения, например:

Тематику спорт посетили 3 раза 7 человек
Тематику спорт посетили 2 раза 12 человек
Тематику погода по одному разу посетили 3 человека

Данный SQL запрос такой именно такой отчет и выдает. Сейчас все это переносится на OLAP. Нужно тот же самый отчет получить

Я сделал меру Frequency и агрегационную формулу у ней поставил DISTINCT COUNT. В вычисляемом члене сделал формулу.

iif(Frequency > 4, 4, Frequency)

А вот как теперь посчитать количество пользователей для каждого из четырех частот визитов для каждой тематики?
...
Рейтинг: 0 / 0
04.06.2004, 17:44
    #32549107
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
"Population" в лоб означает "население", а "популярность" я бы обозначил "popularity"
...
Рейтинг: 0 / 0
04.06.2004, 17:54
    #32549126
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Вообще-то это американцы так назвали.

Вопрос можно ли измерение привязать к вычисляемому полю?
...
Рейтинг: 0 / 0
04.06.2004, 18:37
    #32549188
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Я бы во первых отказался от DISTINCT COUNT - в AS это сплошной гимор

А построил бы View

create view FrequencyFact
as
select CustomerKey, SectionKey, Date, count(distinct SessionKey) as Frequency
from Fact
group by CustomerKey, SectionKey, Date

create view PopularityFact
as
select SectionKey, Date, count(distinct CustomerKey) as Popularity
from Fact
group by SectionKey, Date

построил на них кубики с "нормальной" аггрегацией и производительностью в порядки выше чем у кубов DISTINCT COUNT мерами. свел бы кубы в один виртуальный.

а для кластеризации числа визитов, что "по-уму" тянет на DataMining т.к. деление на
1 Visit
2 Visits
3 Visits
4+ Visits
является "волюнтаристским", а не базирующимся на исследуемых фактах.

можно создать Табличку VisitsCounts(key, caption), но связать ее с таблицей фактов проблематично, т.к. "связка" зависит от рассматриваемого периода времени, т.е. принадлежность к категории не зависит от самого факта. Так что о измерении в классическом смысле слова тут говорить проблематично.
...
Рейтинг: 0 / 0
04.06.2004, 18:48
    #32549210
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
В крайнем случае можно сделать 4 подзапроса
Для 1 визита, 2, 3 и 4 визитов и сложить их Union'ом
...
Рейтинг: 0 / 0
04.06.2004, 19:24
    #32549259
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
в SQL это сколько угодно, а в MDX нет UNION
...
Рейтинг: 0 / 0
04.06.2004, 19:42
    #32549278
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Это я знаю. Я могу 4 раза OPENQUERY использовать
...
Рейтинг: 0 / 0
07.06.2004, 13:29
    #32550676
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
backfire

А как тут использовать Data mining?

Дай хотя бы направление
...
Рейтинг: 0 / 0
07.06.2004, 18:30
    #32551342
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли куб решить такое?
Предположим что волюнтаристское распределение посещаемости (1, 2, 3, 4, > 4) не я является значимым, а лежит в совершенно другом диапазоне. Определение этого диапазона из горы фактических цифирей и является задачей Data Mining.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Может ли куб решить такое? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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