Määritä raportin yhteissummien ryhmäkoostesääntö

Tässä aiheessa kuvataan, miten ryhmäkoostesäännön voi erikseen määrittää käytettäväksi raporttien yhteissummissa. Sillä voidaan parantaa suorituskykyä, ja se on suunniteltu erityisesti teknisille kehittäjille, jotka laativat raportteja Oracle Analyticsilla.

Seuraavan kuvan esimerkissä raporttimäärityksenä on vuosi, kuukausi ja asiakkaan alue ja mittarin arvona Tilauksia tehneiden asiakkaiden erillinen määrä, joka määritetään tilauksia tehneiden asiakkaiden erilliseksi määräksi.

Kohteen GUID-4E9DB43C-F827-4BBB-A94D-5A91F3626C72-default.jpg kuvaus seuraa
.jpg kuvaus

Looginen kysely näyttää seuraavalta:

SELECT
   0 s_0,
   "A - Sample Sales"."Cust Regions"."C50  Region" s_1,
   "A - Sample Sales"."Counts"."32  # of Cust with Orders  (Cnt Distinct)" s_2,
   REPORT_AGGREGATE("A - Sample Sales"."Counts"."32  # of Cust with Orders  (Cnt Distinct)" BY ) s_3
FROM "A - Sample Sales"
WHERE
("Time"."T02 Per Name Month" = '2011 / 11')
ORDER BY 2 ASC NULLS LAST
FETCH FIRST 500001 ROWS ONLY

Luotava fyysinen kysely näyttää seuraavalta:

WITH
SAWITH0 AS (select count(distinct T42433.Cust_Key) as c1,
     T42430.Region as c2
from
     BISAMPLE.SAMP_CUSTOMERS_D T42428 /* D60 Customers */ ,
     BISAMPLE.SAMP_ADDRESSES_D T42430 /* D62 Customers Addresses */ ,
     BISAMPLE.SAMP_TIME_MTH_D T42405 /* D02 Time Month Grain */ ,
     BISAMPLE.SAMP_REVENUE_F T42433 /* F10 Billed Rev */
where  ( T42405.Mth_Key = T42433.Bill_Mth_Key and T42405.Per_Name_Month = '2011 / 11' and T42428.Cust_Key = T42433.Cust_Key and T42428.Address_Key = T42430.Address_Key )
group by T42430.Region),
SAWITH1 AS (select count(distinct T42433.Cust_Key) as c1
from
     BISAMPLE.SAMP_TIME_MTH_D T42405 /* D02 Time Month Grain */ ,
     BISAMPLE.SAMP_REVENUE_F T42433 /* F10 Billed Rev */
where  ( T42405.Per_Name_Month = '2011 / 11' and T42405.Mth_Key = T42433.Bill_Mth_Key ) )
select D1.c1 as c1, D1.c2 as c2, D1.c3 as c3, D1.c4 as c4 from ( select D1.c1 as c1,
     D1.c2 as c2,
     D1.c3 as c3,
     D1.c4 as c4
from
     (select 0 as c1,
               D1.c2 as c2,
               D1.c1 as c3,
               D2.c1 as c4,
               ROW_NUMBER() OVER (PARTITION BY D1.c2 ORDER BY D1.c2 ASC) as c5
          from
               SAWITH0 D1,
               SAWITH1 D2
     ) D1
where  ( D1.c5 = 1 )
order by c2 ) D1 where rownum <= 500001

Summa-arvo 480 on osa-arvojen 182, 113 ja 185 summa. Yhteissumman laskeva looginen kyselylauseke on: REPORT_AGGREGATE("A - Sample Sales"."Counts"."32 # of Cust with Orders (Cnt Distinct)" BY ) s_3.

Kun käytössä on lauseke REPORT_AGGREGATE, summa-arvo lasketaan riippumatta osa-arvoista. Tässä raporttimallissa määrityksenä kuitenkin oli, että oikea yhteissumma voidaan laskea raportin osa-arvoista.

Jos muokkaat sarakekaavaa siten, että kohdan Ryhmäkoostesääntö (summarivi) arvo muutetaan arvosta Palvelimen monimutkainen ryhmäkooste arvoksi Summa, looginen ja fyysinen SQL-kysely muutetaan.

Seuraava kuva esittää alkuperäistä koostetta.

Kohteen GUID-96FB697B-24F7-41A9-8678-F99921E5BB19-default.png kuvaus seuraa
.png kuvaus

Seuraava kuva esittää muokattua koostetta.

Kohteen GUID-ED289D12-C0BD-4588-B288-2069EAB3EB1D-default.png kuvaus seuraa
.png kuvaus

Muokattu looginen SQL-kysely on nyt muotoa REPORT_SUM.

SELECT
   0 s_0,
   "A - Sample Sales"."Cust Regions"."C50  Region" s_1,"A - Sample Sales"."Counts"."32  # of Cust with Orders  (Cnt Distinct)" s_2,
   REPORT_SUM("A - Sample Sales"."Counts"."32  # of Cust with Orders  (Cnt Distinct)" BY ) s_3
FROM "A - Sample Sales"
WHERE
("Time"."T02 Per Name Month" = '2011 / 11')
ORDER BY 2 ASC NULLS LAST
FETCH FIRST 500001 ROWS ONLY

Luotava fyysinen kysely on tämä:

WITH
SAWITH0 AS (select count(distinct T42433.Cust_Key) as c1,
     T42430.Region as c2
from
     BISAMPLE.SAMP_CUSTOMERS_D T42428 /* D60 Customers */ ,
     BISAMPLE.SAMP_ADDRESSES_D T42430 /* D62 Customers Addresses */ ,
     BISAMPLE.SAMP_TIME_MTH_D T42405 /* D02 Time Month Grain */ ,
     BISAMPLE.SAMP_REVENUE_F T42433 /* F10 Billed Rev */
where  ( T42405.Mth_Key = T42433.Bill_Mth_Key and T42405.Per_Name_Month = '2011 / 11' and T42428.Cust_Key = T42433.Cust_Key and T42428.Address_Key = T42430.Address_Key )
group by T42430.Region),
SAWITH1 AS (select 0 as c1,
     D1.c2 as c2,
     D1.c1 as c3
from
     SAWITH0 D1)
select D1.c1 as c1, D1.c2 as c2, D1.c3 as c3, D1.c4 as c4 from ( select D1.c1 as c1,
     D1.c2 as c2,
     D1.c3 as c3,
     sum(D1.c3) over ()  as c4
from
     SAWITH1 D1
order by c2 ) D1 where rownum <= 500001

Toiminto, jolla ryhmäkoosteen voi määrittää erikseen, on käytössä myös työkirjoissa. Katso kohta Visualisointien numeroarvojen muotoilu. Tässä esimerkissä Yksittäisten tilauksia tehneiden asiakkaiden määrä -sarakkeen arvo muutetaan arvosta Koostemenetelmä arvoksi Summa.

Tarkista, että kussakin raportissa on käytössä paras mahdollinen ryhmäkoostesääntö. Jos mahdollista, käytä raporttimallissa erillistä ryhmäkoostesääntöä.

Lisätietoja raporteista on kohdassa Analyysien luonti.