MicroStrategy ONE

Custom Group Banding Size Method

Custom Group Banding Size Method is an advanced property that is hidden by default. For information on how to display this property, see Viewing and Changing Advanced VLDB Properties.

The Custom Group Banding Size Method helps optimize custom group banding when using the Size Banding method. You can choose to use the standard method that uses the Analytical Engine or database-specific syntax, or you can choose to use case statements or temp tables.

Levels at Which You Can Set This

Database instance, report, and template

Examples

The following SQL examples were created in MicroStrategy Tutorial. The report contains a Custom Group "Customer Value Banding" that uses the size method and the Revenue metric. The SQL for each of the three settings for this property is presented below. All three options start with the same SQL passes. In this example, the first six passes are the same. The remaining SQL passes differ depending on the Custom Group Banding Count Method selected.

create table ZZMD000 (CUSTOMER_ID SHORT, WJXBFS1 DOUBLE)
insert into ZZMD000 
select a11.CUSTOMER_ID AS CUSTOMER_ID, a11.TOT_DOLLAR_SALES 
 as WJXBFS1
from CUSTOMER_SLS a11
create table ZZMD001 (WJXBFS1 DOUBLE)
insert into ZZMD001 
select sum(a11.TOT_DOLLAR_SALES) as WJXBFS1
from YR_CATEGORY_SLS a11
select pa1.CUSTOMER_ID AS CUSTOMER_ID,
 (pa1.WJXBFS1 / pa2.WJXBFS1) as WJXBFS1
from ZZMD000 pa1, ZZMD001 pa2
create table ZZMQ002 (CUSTOMER_ID SHORT, WJXBFS1 DOUBLE)
 [Placeholder for an Analytical SQL]
insert into ZZMQ02 values (DummyInsertValue)

Treat banding as normal calculation

select sum(a11.TOT_DOLLAR_SALES) as WJXBFS1
from CUSTOMER_SLS a11, ZZMQ002 a12
where a11.CUSTOMER_ID = a12.CUSTOMER_ID
select a12.DA57 AS DA57, sum(a11.TOT_DOLLAR_SALES) 
 as WJXBFS1
from CUSTOMER_SLS a11, ZZMQ002 a12
where a11.CUSTOMER_ID = a12.CUSTOMER_ID
group by a12.DA57
drop table ZZMD000
drop table ZZMD001
drop table ZZMQ002

Use standard CASE statement syntax

create table ZZOP003 (CUSTOMER_ID SHORT, DA57 LONG)
insert into ZZOP003 
select pa3.CUSTOMER_ID AS CUSTOMER_ID,
 (case 
 when (pa3.WJXBFS1 >= 0 and pa3.WJXBFS1 < .2) then 1
 when (pa3.WJXBFS1 >= .2 and pa3.WJXBFS1 < .4)then 2
 when (pa3.WJXBFS1 >= .4 and pa3.WJXBFS1 < .6)then 3
 when (pa3.WJXBFS1 >= .6 and pa3.WJXBFS1 < .8)then 4
 when (pa3.WJXBFS1 >= .8 and pa3.WJXBFS1 <= 1)then 5
 end) as DA57
from ZZMQ002 pa3
drop table ZZMD000
drop table ZZMD001
drop table ZZMQ002
drop table ZZOP003

Insert band range to database and join with metric value

create table ZZOP003 (BandNo LONG, BandStart DOUBLE, 
 BandEnd DOUBLE)
insert into ZZOP003 values (1, 0, .2)
[Insertions for other bands]
create table ZZOP004 (
 CUSTOMER_ID SHORT, 
 DA57 LONG)
insert into ZZOP004 
select pa3.CUSTOMER_ID AS CUSTOMER_ID, pa4.BandNo as DA57
from ZZMQ002 pa3, ZZOP003 pa4
where ((pa3.WJXBFS1 >= pa4.BandStart
 and pa3.WJXBFS1 < pa4.BandEnd)
 or (pa3.WJXBFS1 = pa4.BandEnd
 and pa4.BandNo = 5))
select sum(a11.TOT_DOLLAR_SALES) as WJXBFS1
from CUSTOMER_SLS a11, ZZOP004 a12
where a11.CUSTOMER_ID = a12.CUSTOMER_ID
select a12.DA57 AS DA57,sum(a11.TOT_DOLLAR_SALES) as WJXBFS1
from CUSTOMER_SLS a11, ZZOP004 a12
where a11.CUSTOMER_ID = a12.CUSTOMER_ID
group by a12.DA57
drop table ZZMD000
drop table ZZMD001
drop table ZZMQ002
drop table ZZOP003
drop table ZZOP004