Condividi tramite


Utilizzo delle funzioni di aggregazione

In questo argomento sono disponibili esempi dell'utilizzo delle funzioni di aggregazione (Sum, Min, Max, Count e Distinct Count) nelle misure. Gli esempi relativi alle query sono basati sulle stesse celle del cubo degli esempi seguenti, affinché sia possibile osservare gli effetti della modifica della funzione.

Il cubo utilizzato in questi esempi dispone di un'unica misura, denominata Sales, basata sulla colonna Sales_Amount della tabella dei fatti Sales. Il cubo dispone di tre dimensioni:

  • Customers, basata sulla tabella Customers e contenente i livelli seguenti, in ordine discendente a partire da quello più elevato:
    • (Totale)
    • Cliente con Customer_Name come colonna nome membro e Customer_ID come colonna chiave membro
  • Retail Stores, basata sulla tabella Retail_Stores e contenente i livelli seguenti, in ordine discendente a partire da quello più elevato:
    • (Totale)
    • Punto vendita al dettaglio con Retail_Store_Name come colonna nome membro e Retail_Store_ID come colonna chiave membro
  • Products, basata sulla tabella Products e contenente i livelli seguenti, in ordine discendente a partire da quello più elevato:
    • (Totale)
    • Categoria di prodotto con Product_Category come colonna nome membro e colonna chiave membro
    • Prodotto con Product_Name come colonna nome membro e Product_ID come colonna chiave membro

Per ulteriori informazioni su dimensioni e livelli, vedere l'argomento sul relativo utilizzo.

Di seguito viene illustrato lo schema del cubo.

Di seguito viene illustrata la tabella dei fatti del cubo, denominata Sales.

Transaction_ID Customer_ID Product_ID Retail_Store_ID Sales_ Amount

1

1

1

1

300

2

1

1

1

250

3

1

1

1

250

4

1

2

1

100

5

1

4

1

700

6

2

1

2

290

7

2

2

2

90

8

2

3

3

510

9

3

1

4

350

10

3

2

3

110

11

4

3

4

550

12

4

4

4

750

Di seguito viene illustrata una delle tabelle delle dimensioni del cubo, denominata Customers.

Customer_ID Customer_Name Customer_Address_ Line_1 Customer_Address_ Line_2

1

A

1 A Street

Aville, AA 55555

2

B

2 B Street

Bville, BB 55555

3

C

3 C Street

Cville, CC 55555

4

D

4 D Street

Dville, DD 55555

Di seguito viene illustrata un'altra tabella delle dimensioni del cubo, denominata Retail_Stores.

Retail_ Store_ID Retail_Store_ Name Retail_Store_ Address_Line_1 Retail_Store_ Address_Line_2

1

A

1 A Avenue

Atown, AA 55555

2

B

2 B Avenue

Btown, BB 55555

3

C

3 C Avenue

Ctown, CC 55555

4

D

4 D Avenue

Dtown, DD 55555

Di seguito viene illustrata la tabella della dimensione finale del cubo, denominata Products.

Product_ID Product_Name Product_Description Product_Category

1

A

aaaa aaaa aaaa

AB

2

B

bbbb bbbb bbbb

AB

3

C

cccc cccc cccc

CD

4

D

dddd dddd dddd

CD

SUM

Se il valore della proprietà Funzione di aggregazione di una misura è impostato su Sum, il valore della misura per una cella del cubo viene calcolato addizionando i valori nella colonna di origine della misura soltanto dalle righe della combinazione dei membri che definiscono la cella e dei discendenti di tali membri.

Esempi

Gli esempi seguenti restituiscono valori che rappresentano le vendite cumulative.

A: Query su una cella del cubo atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e il prodotto A restituisce il valore 800.

B: Query su una cella del cubo non atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e la categoria di prodotto AB restituisce il valore 900.

C: Query su più celle del cubo

Una query sulla misura Sales posiziona ogni punto vendita al dettaglio sull'asse X, nidifica i prodotti nelle categorie di prodotto sull'asse Y ed esegue il sezionamento in base a tutti i clienti. Viene restituito il set di dati seguente.

Tutti i punti vendita al dettaglio

A

B

C

D

Tutti i prodotti

4250

1600

380

620

1650

AB

1740

900

380

110

350

A

1440

800

290

350

B

300

100

90

110

CD

2510

700

510

1300

C

1060

510

550

D

1450

700

750

Min

Se il valore della proprietà Funzione di aggregazione di una misura è impostato su Min, il valore della misura per una cella del cubo viene calcolato utilizzando il valore più basso nella colonna di origine della misura soltanto dalle righe della combinazione dei membri che definiscono la cella e dei discendenti di tali membri.

Esempi

Gli esempi seguenti restituiscono valori che rappresentano il prezzo di vendita minimo.

A: Query su una cella del cubo atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e il prodotto A restituisce il valore 250.

B: Query su una cella del cubo non atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e la categoria di prodotto AB restituisce il valore 100.

C: Query su più celle del cubo

Una query sulla misura Sales posiziona ogni punto vendita al dettaglio sull'asse X, nidifica i prodotti nelle categorie di prodotto sull'asse Y ed esegue il sezionamento in base a tutti i clienti. Viene restituito il set di dati seguente.

Tutti i punti vendita al dettaglio

A

B

C

D

Tutti i prodotti

90

100

90

110

350

AB

90

100

90

110

350

A

250

250

290

350

B

90

100

90

110

CD

510

700

510

550

C

510

510

550

D

700

700

750

Max

Se il valore della proprietà Funzione di aggregazione di una misura è impostato su Max, il valore della misura per una cella del cubo viene calcolato utilizzando il valore più elevato nella colonna di origine della misura soltanto dalle righe della combinazione dei membri che definiscono la cella e dei discendenti di tali membri.

Esempi

Gli esempi seguenti restituiscono valori che rappresentano il prezzo di vendita massimo.

A: Query su una cella del cubo atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e il prodotto A restituisce il valore 300.

B: Query su una cella del cubo non atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e la categoria di prodotto AB restituisce il valore 300.

C: Query su più celle del cubo

Una query sulla misura Sales posiziona ogni punto vendita al dettaglio sull'asse X, nidifica i prodotti nelle categorie di prodotto sull'asse Y ed esegue il sezionamento in base a tutti i clienti. Viene restituito il set di dati seguente.

Tutti i punti vendita al dettaglio

A

B

C

D

Tutti i prodotti

750

700

290

510

750

AB

350

300

290

110

350

A

350

300

290

350

B

110

100

90

110

CD

750

700

510

750

C

550

510

550

D

750

700

750

Count

Se il valore della proprietà Funzione di aggregazione di una misura è impostato su Count, il valore della misura per una cella del cubo viene calcolato addizionando il numero di valori nella colonna di origine della misura soltanto dalle righe della combinazione dei membri che definiscono la cella e dei discendenti di tali membri.

Esempi

Gli esempi seguenti restituiscono valori che rappresentano il numero delle transazioni di vendita.

A: Query su una cella del cubo atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e il prodotto A restituisce il valore 3.

B: Query su una cella del cubo non atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e la categoria di prodotto AB restituisce il valore 4.

C: Query su più celle del cubo

Una query sulla misura Sales posiziona ogni punto vendita al dettaglio sull'asse X, nidifica i prodotti nelle categorie di prodotto sull'asse Y ed esegue il sezionamento in base a tutti i clienti. Viene restituito il set di dati seguente.

Tutti i punti vendita al dettaglio

A

B

C

D

Tutti i prodotti

12

5

2

2

3

AB

8

4

2

1

1

A

5

3

1

1

B

3

1

1

1

CD

4

1

1

2

C

2

1

1

D

2

1

1

Distinct Count

Se il valore della proprietà Funzione di aggregazione di una misura è impostato su Distinct Count, il valore della misura per una cella del cubo viene calcolato addizionando il numero di valori univoci nella colonna di origine della misura soltanto dalle righe della combinazione dei membri che definiscono la cella e dei discendenti di tali membri.

Una misura con il valore della proprietà Funzione di aggregazione impostato su Distinct Count viene denominata misura Distinct Count. Una misura Distinct Count può essere utilizzata per conteggiare le occorrenze dei membri di livello più basso di una dimensione nella tabella dei fatti. Poiché si tratta di un conteggio di valori distinti, un membro con più occorrenze viene conteggiato una sola volta.

Le misure Distinct Count vengono in genere utilizzate per determinare per ogni membro di una dimensione il numero dei membri distinti di livello più basso di un'altra dimensione che condividono righe nella tabella dei fatti. In un cubo Sales, ad esempio, è possibile determinare il numero di prodotti distinti acquistati per ogni cliente e gruppo di clienti, individuando per ogni membro della dimensione Customers il numero di membri distinti di livello più basso della dimensione Products che condividono righe nella tabella dei fatti. In un cubo Internet Site Visits, invece, è ad esempio possibile determinare il numero di pagine distinte visitate nel sito Internet, individuando per ogni membro della dimensione Site Visitors il numero di membri distinti di livello più basso della dimensione Pages che condividono righe nella tabella dei fatti. In ognuno di questi esempi, i membri di livello più basso della seconda dimensione vengono conteggiati mediante una misura Distinct Count.

Questo tipo di analisi non deve necessariamente essere limitata a due dimensioni. Una misura Distinct Count può infatti essere separata e sezionata con qualsiasi combinazione di dimensioni del cubo, inclusa la dimensione contenente i membri conteggiati.

Una misura Distinct Count con conteggio dei membri è basata su una colonna chiave esterna nella tabella dei fatti, identificata dalla proprietà Colonna di origine della misura. Questa colonna viene unita in join alla colonna della tabella della dimensione che identifica i membri conteggiati mediante la misura Distinct Count.

L'utilizzo di misure Distinct Count nei cubi regolari è soggetto a limitazioni. In un cubo regolare è consentita una sola misura Distinct Count e soltanto se il cubo regolare non include una dimensione con formule o operatori personalizzati di rollup. Queste limitazioni non vengono applicate ai cubi virtuali. In un cubo virtuale possono essere utilizzate più misure Distinct Count ed è possibile utilizzare formule e operatori personalizzati di rollup in combinazione con misure Distinct Count.

Poiché le misure Distinct Count sono di tipo non additivo, la presenza di una misura Distinct Count restringe significativamente le possibilità di preaggregazione del cubo da parte di Microsoft® SQL Server™ 2000 Analysis Services. Per tale motivo, è consigliabile inserire ogni misura Distinct Count in un cubo apposito, senza altre misure. I cubi con misure Distinct Count possono quindi essere uniti in join con altri cubi in un cubo virtuale in grado di gestire in modo efficiente tutte le misure.

[!NOTA] Se in un cubo viene utilizzata una misura Distinct Count, l'intero cubo viene considerato come non additivo. I cubi non additivi non supportano membri creati dinamicamente. Se utilizzate in un cubo non additivo, le funzioni MDX che creano dinamicamente membri, come VisualTotals, restituiranno pertanto un errore. Ciò influisce inoltre su altre funzionalità, ad esempio sull'abilitazione dei totali visualizzati nell'ambito della protezione delle dimensioni, in cui vengono utilizzati membri creati dinamicamente.

Esempi

Gli esempi seguenti restituiscono valori che rappresentano il numero delle transazioni di vendita con un prezzo di vendita univoco.

A: Query su una cella del cubo atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e il prodotto A restituisce il valore 2.

B: Query su una cella del cubo non atomica

Una query sulla misura Sales per il cliente A, il punto vendita al dettaglio A e la categoria di prodotto AB restituisce il valore 3.

C: Query su più celle del cubo

Una query sulla misura Sales posiziona ogni punto vendita al dettaglio sull'asse X, nidifica i prodotti nelle categorie di prodotto sull'asse Y ed esegue il sezionamento in base a tutti i clienti. Viene restituito il set di dati seguente.

Tutti i punti vendita al dettaglio

A

B

C

D

Tutti i prodotti

11

4

2

2

3

AB

7

3

2

1

1

A

4

2

1

1

B

3

1

1

1

CD

4

1

1

2

C

2

1

1

D

2

1

1

Vedere anche

Concetti

Definizione delle funzioni semiadditive

Altre risorse

Guida di riferimento alle funzioni MDX (MDX)

Guida in linea e informazioni

Assistenza su SQL Server 2005