|  | 
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ MSSQL 2016 Ent, VS 2019, SSAS Доброго дня! В кубе считаю Среднее и Медиану по числовому ряду. Числовой ряд это мера таблицы фактов [Measures].[_t Cronos] , которая содержит простые числа, а также значения Null и "0"(Ноль). Считаю в CM куба вдоль измерения, созданного на базе суррогатного первичного ключа [SALES].[ID KEY].[ID KEY] таблицы фактов. Получается рассчитать без учета Null и "0". Или с ними: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. И все это не то, что надо Заказчику. Он требует учитывать в расчете средних и медианы, наряду с числами, еще и значение "Ноль". А вот Null не учитывать в расчетах. Кто знает как это решить на уровне СМ, не переходя в ETL? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 24.03.2021, 08:06 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ Nivatu, Вы объясните задачу в целом, а то у вас объяснение вида нужно посчитать среднее по X , а еще надо делить на 0. Если надо среднее по всем дням, включая пустые, то рекомендую завести показатель "кол-во дней", который посчитать по календарю, и на него делить. В любом случае посчитайте показатели "числитель" и "знаменатель". И поделите в конечном показателе. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 24.03.2021, 14:13 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ Nivatu, ну, вообще-то, прочитайте внимательно про AVG - она не учитывает пустые ячейки в расчете. и в документации написано, что если надо их учитывать (обратная задача Вашей) используйте CoalesceEmpty или любое выражение возвращающее для пустых ячеек 0. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 24.03.2021, 14:28 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ a_voronin, В целом задача такая: Нужно за календарные периоды считать статистику затрат времени (среднее и медиану) на обработку группы уникальных событий, которые в заданный период происходили. События в таблице фактов. Для каждого события отведена одна строка со своим уникальным Id-шником и календарной датой. По нему в этой же строке, но в другом столбце [t_Cronos] простым числом регистрируется затраты времени в минутах. В формулу должны идти только те строки, где затраты времени не равны Null. А поле с нолем (в примере строка #105)должно быть учтено в счетчике формул, т.к. событие в обработке все-таки было. [img=https://www.sql.ru/images/Исходные данные.png] В итоге трудность этой задачи сводится не к тому "как рассчитать медиану или среднее?", а к тому "как учесть Ноль в счетчике формулы и при этом не учитывать Null?" AVG() и Median() не различают Ноль и Null ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.03.2021, 07:14 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ ShIgor, Спасибо за полезный совет. Описание AVG в MS документации действительно шире чем в ином справочнике. В моем случае Avg учитывает все Null и Ноли. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. А вот так не учитывает ни Null ни Ноли: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. т.е. isEmpty() тоже метет Пустые и Ноли как одно C CoalesceEmpty "каменный цветок" пока тоже не получается. Разбираюсь. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.03.2021, 09:11 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ Nivatu, а если вот так, то результат прям вот как на скриншоте? или вместо null стоят 0? Код: sql 1. 2. 3. 4. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.03.2021, 21:19 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ ShIgor, Что называется "картина маслом". Результат все объясняет (( В нижней строке в исходнике Null. Тип агрегирования Sum. Как же эффективней всего поменять модель данных? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2021, 07:07 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ Nivatu, если у Вас SSAS MD так все просто. у Вас в настройках обработки нулл-ов 'ZeroOrBlank'. смените на 'Preserve'. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2021, 09:12 |  | ||
| 
Разделение Null и Ноль ? | |||
|---|---|---|---|
| #18+ но я бы пошел другим путем. создал бы еще измерение "С учетом нулл-ов" да/нет и флаг в источнике iif(value is null, 0, 1). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2021, 09:38 |  | ||
|  | 

| start [/forum/topic.php?fid=49&msg=40057088&tid=1857167]: | 0ms | 
| get settings: | 8ms | 
| get forum list: | 12ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 43ms | 
| get topic data: | 10ms | 
| get forum data: | 3ms | 
| get page messages: | 46ms | 
| get tp. blocked users: | 1ms | 
| others: | 10ms | 
| total: | 141ms | 

| 0 / 0 | 
