2016-09-16 52 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和B = 1,UA%=負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語句放在Sum和Count aggs中,或者將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。