2016-09-16 6 views
0
A B  UA 
1 0 Negative 
1 1 Negative 
1 1 Positive 
2 5 Negative 
2 2 Positive 

Я хочу рассчитать% UA Отрицательно, чтобы при A = B подсчитать все отрицательные в столбце UA и делить их на общее число результатов, где A = B. Итак, для A = 1 и в = 1,% UA Negative = 1/2 = 0,5Расчет IF с агрегатными функциями

Я пробовал:

IF [A] = [B] THEN 
    SUM(IF[UA] = 'Negative' THEN 1 ElSE 0 END)/COUNT([UA]) END 

, но я получаю сообщение об ошибке:

Cannot mix aggregate and non-aggregate comparisons or results in 'IF' expressions

ответ

2

Вы может либо поместить первый оператор IF внутри ваших сумм, либо скопировать агенты или поместить ATTR вокруг первого оператора IF.

SUM(IF [A] = [B] THEN IF[UA] = 'Negative' THEN 1 ElSE 0 END END)/COUNT(IF [A] = [B] THEN [UA] end) 

или

IF ATTR([A]) = ATTR([B]) THEN 
SUM(IF[UA] = 'Negative' THEN 1 ElSE 0 END)/COUNT([UA]) END 

Последний преобразует ваш первый IF заявление на AGG.

Смежные вопросы