Сумма и среднее по нулевым значениям SQL Server 2008 Analysis Services - PullRequest
1 голос
/ 19 мая 2010

У меня есть простая проблема, я думаю, но я погуглил и не могу найти решение. У меня есть куб, который имеет MeasureA, MeasureB и MeasureC. Не все три показателя имеют значения для каждой записи, иногда они могут быть нулевыми, это зависит от того, применимо ли это.

Теперь для моих итогов мне нужно усреднить, но среднее не должно принимать во внимание нули. Любая помощь будет высоко ценится. При просмотре мер нулевые значения отображаются в виде нулей.

Ответы [ 4 ]

0 голосов
/ 17 февраля 2012

Для каждой меры в ее Свойствах перейдите к настройкам исходного столбца и выберите NullProcessing = "Preserve", а затем показатель вернет NULL, а не 0

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

По умолчанию SQL Server игнорирует нули - отсюда и полученное сообщение - Warning: Null value is eliminated by an aggregate or other SET operation.

Пример:

create table #test (id int null)
insert #test values (1)
insert #test values (1)
insert #test values (null)
insert #test values (1)

select avg(id), sum(id), count(id) from #test
0 голосов
/ 19 мая 2010

Можете ли вы использовать функцию NonEmpty () MDX для обертывания усредняемых наборов?

http://msdn.microsoft.com/en-us/library/ms145988.aspx

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

Почему бы не вычислить среднее значение без использования функции AVG ()?

Например:
([ИЗМЕРЕНИЯ]. [ИЗМЕРЕНИЕ] + [ИЗМЕРЕНИЯ]. [ИЗМЕРЕНИЕ] + [ИЗМЕРЕНИЯ]. [ИЗМЕРЕНИЕ]) / 3

Конечно, это работает только в том случае, если среднее значение будет состоять только из 3 мер. Я бы действительно использовал функцию AVG () только в том случае, если вам нужно выполнить оценку по набору:
http://msdn.microsoft.com/en-us/library/ms146067.aspx

...