Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 SSAS Count distinct мера с дополн. условием  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 906
Добрый день всем.

DWH для прсототы звезда
(ТФ)Events <--- dwh.DimPatient ( где есть флаг CCD {Y, N})

Есть мера - Count Disitnct пациентов по (ТФ)Events .

Надо посчтать точно такую же но с условием флаг CCD {Y}
т.е условие Where ( CCD {Y} ) оно работает
но мне надо именн 2-ю меру Count Disitnct для пациентвов флаг CCD = {Y}

Пока на уровне ETL вместо (ТФ)Events сделал View с добавочным полем

, iif ( Pt1.Is_CCD_YN = 'Y', FE.PatientKey , NULL ) as CCD_PatientKey
from dwh.FactEvent FE
	INNER join   dwh.DimPatient Pt1
       on FE.PatientKey = Pt1.PatientKey

ну и по CCD_PatientKey считаю Count Disitnct (нуллы не считаются)
Решение вроде рабочее.
А можно ли в самом кубе мертику Count Distinct сделать с условием пациентвов флаг CCD = {Y}
Scope
вроде как позволяет переопредлеить метрику на узлах куба
но не вижу как в данном случае
( в отчетах флага ссд вообще не должно быть )
14 июн 17, 17:48    [20564669]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 1964
Гулин Федор,

бяда прям...

with 
  member [Measures].[# of Patients with CCD] as ([Measures].[# of Patients], [Dim Patient].[CCD].&[Y])
  member [Measures].[# of Patients wo CCD] as ([Measures].[# of Patients], [Dim Patient].[CCD].&[N])
select
 {[Measures].[# of Patients], [Measures].[# of Patients with CCD], [Measures].[# of Patients wo CCD]} on columns,
 {чего-то там} on rows
from
 [откуда-то]
14 июн 17, 20:24    [20564993]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 906
ShIgor,
БОЛЬШОЕ СПАСИБО !!!
реально просто если знаешь - но я то не знал
жалею что раньше не спросил - перекраивал ETL
в любом разрезе в принципе можно
with 
  member [Measures].[c1] as ( [Measures].[# of Patients with CCD] , [Dim Patient].[Is CCD YN].&[Y] )
  member [Measures].[c2] as ( [Measures].[# of Patients with CCD] , [Dim Patient].[Is CCD YN].&[N] )
  member [Measures].[c3] as ( [Measures].[# of Patients with CCD] , [Dim Patient].[Is CCD YN].[All].UNKNOWNMEMBER)
  member [Measures].[o1] as ( [Measures].[# of Patients with CCD] ,  [Dim Organization].[Organizations].&[388] )
  member [Measures].[p1] as ( [Measures].[# of Patients with CCD] , [Dim Patient].[Patient].&[60863]  )
SELECT NON EMPTY 
{ [Measures].[# of Patients with CCD]  
, [Measures].[c1]
, [Measures].[c2]
, [Measures].[c3]
, [Measures].[o1]
, [Measures].[p1]
}
ON 0  
FROM [Simply Connect DWH] 
15 июн 17, 10:53    [20565958]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3508
Подыму тему DISTINCT COUNT с условием WHERE (condition)

самый медленный

побыстрее

не проверял


физическая DISTINCT COUNT мера, предоставляя в качестве партиционированной таблицы фактов view c фильтром самый быстрый вариант на объемах в десятки-сотни млн. строк

Что-нибудь изменилось в SSAS MOLAP 2016 EE ?? ну кроме того, что DC вроде не будет сканировать лишние OLAP-партиции при пользовательских запросах


Проблема в том, что по этой базовой таблице требуется штук 8 DISTINCT COUNT мер и плодить отдельные группы мер.....
18 июл 17, 11:46    [20653162]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 906
Alex_496,
2 Ссылка ведет на блог
http://sqlblog.com/blogs/mosha/archive/2007/11/22/optimizing-count-filter-expressions-in-mdx.aspx
или это общаяс
правильно я понимаю что за DISTINCT отвечает Exists ?
т.е каунт по условию я вижу
а вот каунт DISTINCT - нет
ткните меня пальцем почему DISTINCT ?


WITH MEMBER [Measures].[High Volume Products Count] AS 
 Count(Filter(
  Exists([Product].[Product].[Product],,"Internet Sales")
  ,[Measures].[Internet Order Quantity] > 5))
SELECT [Customer].[Customer Geography].[Country] ON 0
, [Date].[Calendar].[Date].MEMBERS ON 1
FROM [Adventure Works]
WHERE [Measures].[High Volume Products Count]
18 июл 17, 16:11    [20654739]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3508
Гулин Федор,

ну типа да
18 июл 17, 16:56    [20654897]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Владимир Штепа
Member

Откуда: Hannover
Сообщений: 6001
Гулин Федор,

DISTINC потому что вы считаете элементы измерения, а не строки в таблице фактов.

COUNT(FILTER([Set], [Condition]))

это тормоз

использовать надо

SUM([Set], IIF([Condition], 1, NULL))

как уже было указано в посте Alex_496 (с ссылкой на Мошу)
18 июл 17, 17:38    [20655092]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3508
Владимир Штепа
Гулин Федор,

DISTINC потому что вы считаете элементы измерения, а не строки в таблице фактов.

COUNT(FILTER([Set], [Condition]))

это тормоз

использовать надо

SUM([Set], IIF([Condition], 1, NULL))

как уже было указано в посте Alex_496 (с ссылкой на Мошу)



Владимир,

на таблице фактов в сотню миллионов и 1000 пользователей
по-прежнему рулят хардовые физические DC- меры ?
18 июл 17, 18:01    [20655170]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Владимир Штепа
Member

Откуда: Hannover
Сообщений: 6001
Alex_496,

Естественно хардовые дц меры круче других вариантов, но и их процессинг не на шару
18 июл 17, 23:38    [20655859]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3508
Владимир,

пока сделал на формулах SUM([Set], IIF([Condition], 1, NULL))

поскольку DC требуется несколько:
рабочие торговые точки
продающие торговые точки
продающие торговые точки локальных сетей
продающие торговые точки региональных сетей
продающие торговые точки федеральных сетей
агенты регистрирующие
агенты подписавшие
и непременно хотят видеть в отдельных столбцах OLAP-сводной таблицы

Может, "продающие торговые точки" - сделать физическую DC, а остальные - формулой от этой физической
19 июл 17, 00:17    [20655934]     Ответить | Цитировать Сообщить модератору
 Re: SSAS Count distinct мера с дополн. условием  [new]
Владимир Штепа
Member

Откуда: Hannover
Сообщений: 6001
Alex_496,

Именно так, а по другим признакам создать легенькое измерение и тогда цм будут простыми и быстрыми
19 июл 17, 08:44    [20656164]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить