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)