You can build a dimension in the front end, but a better way is to do an interval match. Apart from being fster, it salso easier to maintain (for example, changing the bands). Follow this code pattern (adapt to your specific case):
Intervals:
LOAD * Inline
[
From, To, BandName
0, 99, 0-99
100, 499, 100-499
500, 1E6, 500+
];
Left Join (Fact)
IntervalMatch([Copies Sold])
LOAD From, To
Resident Intervals;
// OPTIONAL
Left Join (Fact)
LOAD *
Resident Intervals;
Drop Table Intervals;
The "OPTIONAL" code is not essential, although I prefer to clean up my data model, which that code does.
Logic will get you from a to b. Imagination will take you everywhere. - A Einstein