Dodjela pravila sabiranja za ukupne iznose izvješća

Ta tema opisuje načine za eksplicitno dodjeljivanje pravila sabiranja za ukupne iznose izvješća, čime se poboljšavaju radne karakteristike, a namijenjene su konkretno tehničkim razvojnim inženjerima koji pišu izvješća uz Oracle Analytics.

Sljedeća slika pokazuje primjer u kojemu je definicija izvješća godina, mjesec i regija kupca, s metričkom vrijednošću Count Distinct of Customers with Orders, koji se definira kao zaseban broj kupaca s narudžbama.

Slijedi opis za GUID-4E9DB43C-F827-4BBB-A94D-5A91F3626C72-default.jpg
.jpg

Logički upit izgleda ovako:

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

Generirani fizički upit izgleda ovako:

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

Ukupna vrijednost, 480, zbroj je vrijednosti sastavnica, 182 + 113 + 185. Izraz logičkog upita kojim se dolazi do ukupne vrijednosti: “REPORT_AGGREGATE("A - Sample Sales"."Counts"."32 # of Cust with Orders (Cnt Distinct)" BY ) s_3”.

Ako upotrebljavate REPORT_AGGREGATE, ukupna vrijednost izračunat će se neovisno o vrijednostima sastavnica. Za ovaj dizajn izvješća odgovarajuća ukupna vrijednost može se izračunati iz sastavnica ovog izvješća.

Ako uredite formulu kako biste promijenili vrijednost Aggregation Rule (Totals Row) sa Server Complex Aggregate na Sum, promijenit će se logički i fizički SQL upit.

Sljedeća slika pokazuje originalno sabiranje.

Slijedi opis za GUID-96FB697B-24F7-41A9-8678-F99921E5BB19-default.png
.png

Sljedeća slika pokazuje izmijenjeno sabiranje.

Slijedi opis za GUID-ED289D12-C0BD-4588-B288-2069EAB3EB1D-default.png
.png

Izmijenjeni logički SQL upit sada ima 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

To je generirani fizički upit:

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

Ista opcija za eksplicitno postavljanje sabiranja dostupna je i u radnim knjigama. Pogledajte Formatiranje numeričkih vrijednosti u vizualizacijama. U ovom primjeru, za stupac Count Distinct Customers with Orders, promijenite Način sabiranja na Zbroj.

Pregledajte svoja izvješća i uvjerite se kako se za izvješće upotrebljava najbolje pravilo sabiranja. Ako to dizajn izvješća dopušta, upotrijebite eksplicitno pravilo sabiranja.

Više informacija o izvješćima potražite u odjeljku Stvaranje analiza.