Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I am currently using a Match function instead of nested if statements because my data source is enormous, and if statements really slow it down. Now I'd like to use an interval instead of just a number - so instead of using Match(Num,1,10,100,500) I'd like to be able to do within 5 of each value - so instead of 10, it would be between 5 and 14, etc.
Any idea on how to do that?
load *
,Qty - 5 as Start
,Qty + 5 as End;
A:
LOAD * INLINE [
Qty
10
20,
];
B:
LOAD * INLINE [
X
10
];
IntervalMatch ( X ) load Start, End Resident A;
drop tables A, B;
Does this help?
Mark
Try to use Class function, where you basically create buckets. Here is example from help:
class(expression, interval [ , label [ , offset ]])
Creates a classification of expressions. The bin width is determined by the number set as interval. The result is shown as a<=x<b, where a and b are the upper and lower limits of the bin. The x can be replaced by an arbitrary string stated in label. 0 is normally the default starting point of the classification. This can be changed by adding an offset.
Examples:
class( var,10 ) with var = 23 returns '20<=x<30'
class( var,5,'value' ) with var = 23 returns '20<= value <25'
class( var,10,'x',5 ) with var = 23 returns '15<=x<25'