SUMMARIZE
Restituisce una tabella di riepilogo per i totali richiesti su un set di gruppi.
Sintassi
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Parametri
Termine | Definizione |
---|---|
table |
Qualsiasi espressione DAX che restituisce una tabella di dati. |
groupBy_ColumnName |
(Facoltativo) Nome completo di una colonna esistente utilizzata per creare gruppi di riepilogo in base ai valori trovati. Questo parametro non può essere un'espressione. |
name |
Nome assegnato a una colonna totale o riepilogata, racchiuso tra virgolette doppie. |
expression |
Qualsiasi espressione DAX che restituisce un singolo valore scalare, in cui l'espressione deve essere valutata più volte (per ogni riga/contesto). |
Valore restituito
Tabella con le colonne selezionate per gli argomenti groupBy_columnName
e le colonne riepilogate progettate dagli argomenti name.
Osservazioni:
Ogni colonna per cui si definisce un nome deve avere un'espressione corrispondente; in caso contrario, viene restituito un errore. Il primo argomento, name, definisce il nome della colonna nei risultati. Il secondo argomento, espressione, definisce il calcolo eseguito per ottenere il valore per ogni riga in tale colonna.
groupBy_columnName deve essere in
table
o in una tabella correlata atable
.Ogni nome deve essere racchiuso tra virgolette doppie.
La funzione raggruppa un set selezionato di righe in un set di righe di riepilogo in base ai valori di una o più colonne groupBy_columnName. Viene restituita una riga per ogni gruppo.
Questa funzione non è supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.
Esempio
Nell'esempio seguente viene restituito un riepilogo delle vendite dei rivenditori raggruppate intorno all'anno di calendario e al nome della categoria di prodotto. Questa tabella dei risultati consente di eseguire analisi sulle vendite dei rivenditori per anno e categoria di prodotti.
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
La tabella seguente mostra un'anteprima dei dati così come verrebbe ricevuta da qualsiasi funzione che prevede di ricevere una tabella:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|
2008 | Bikes | 12968255.42 | 36167.6592 |
2005 | Bikes | 6958251.043 | 4231.1621 |
2006 | Bikes | 18901351.08 | 178175.8399 |
2007 | Bikes | 24256817.5 | 276065.992 |
2008 | Componenti | 2008052.706 | 39.9266 |
2005 | Componenti | 574256.9865 | 0 |
2006 | Componenti | 3428213.05 | 948.7674 |
2007 | Componenti | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Accessori | 153299.924 | 865.5945 |
2005 | Accessori | 18594.4782 | 4.293 |
2006 | Accessori | 86612.7463 | 1061.4872 |
2007 | Accessori | 275794.8403 | 4756.6546 |
Con ROLLUP
L'aggiunta della sintassi ROLLUP modifica il comportamento della funzione SUMMARIZE aggiungendo righe di rollup al risultato sulle colonne groupBy_columnName. ROLLUP può essere usato solo all'interno di un'espressione SUMMARIZE.
Esempio
Nell'esempio seguente vengono aggiunte righe di rollup alle colonne Group-By della chiamata di funzione SUMMARIZE:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Restituisce la tabella seguente:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|
2008 | Bikes | 12968255.42 | 36167.6592 |
2005 | Bikes | 6958251.043 | 4231.1621 |
2006 | Bikes | 18901351.08 | 178175.8399 |
2007 | Bikes | 24256817.5 | 276065.992 |
2008 | Componenti | 2008052.706 | 39.9266 |
2005 | Componenti | 574256.9865 | 0 |
2006 | Componenti | 3428213.05 | 948.7674 |
2007 | Componenti | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Accessori | 153299.924 | 865.5945 |
2005 | Accessori | 18594.4782 | 4.293 |
2006 | Accessori | 86612.7463 | 1061.4872 |
2007 | Accessori | 275794.8403 | 4756.6546 |
2008 | 15496115.89 | 41224.3038 | |
2005 | 7582953.67 | 4326.4144 | |
2006 | 22871907.85 | 184419.1335 | |
2007 | 30543780.84 | 297538.0745 | |
76494758.25 | 527507.9262 |
Con ROLLUPGROUP
L'aggiunta di ROLLUPGROUP all'interno di una sintassi ROLLUP può essere usata per impedire subtotali parziali nelle righe di rollup. ROLLUPGROUP può essere usato solo all'interno di un'espressione ROLLUP, ROLLUPADDISSUBTOTALo ROLLUPISSUBTOTAL.
Esempio
L'esempio seguente mostra solo il totale complessivo di tutti gli anni e le categorie senza il subtotale di ogni anno con tutte le categorie:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Restituisce la tabella seguente:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|
2008 | Bikes | 12968255.42 | 36167.6592 |
2005 | Bikes | 6958251.043 | 4231.1621 |
2006 | Bikes | 18901351.08 | 178175.8399 |
2007 | Bikes | 24256817.5 | 276065.992 |
2008 | Componenti | 2008052.706 | 39.9266 |
2005 | Componenti | 574256.9865 | 0 |
2006 | Componenti | 3428213.05 | 948.7674 |
2007 | Componenti | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Accessori | 153299.924 | 865.5945 |
2005 | Accessori | 18594.4782 | 4.293 |
2006 | Accessori | 86612.7463 | 1061.4872 |
2007 | Accessori | 275794.8403 | 4756.6546 |
76494758.25 | 527507.9262 |
Con ISSUBTOTAL
Con ISSUBTOTALè possibile creare un'altra colonna nell'espressione SUMMARIZE che restituisce True se la riga contiene valori subtotali per la colonna specificata come argomento per ISSUBTOTAL, in caso contrario restituisce False. ISSUBTOTAL può essere usato solo all'interno di un'espressione SUMMARIZE.
Esempio
L'esempio seguente genera una colonna ISSUBTOTAL per ogni colonna ROLLUP nella chiamata di funzione SUMMARIZE specificata:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
, "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
, "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)
Restituisce la tabella seguente:
[Is Sub Total for DateTimeCalendarYear] | [Is Sub Total for ProductCategoryName] | DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|---|---|
FALSE |
FALSE |
||||
FALSE |
FALSE |
2008 | Bikes | 12968255.42 | 36167.6592 |
FALSE |
FALSE |
2005 | Bikes | 6958251.043 | 4231.1621 |
FALSE |
FALSE |
2006 | Bikes | 18901351.08 | 178175.8399 |
FALSE |
FALSE |
2007 | Bikes | 24256817.5 | 276065.992 |
FALSE |
FALSE |
2008 | Componenti | 2008052.706 | 39.9266 |
FALSE |
FALSE |
2005 | Componenti | 574256.9865 | 0 |
FALSE |
FALSE |
2006 | Componenti | 3428213.05 | 948.7674 |
FALSE |
FALSE |
2007 | Componenti | 5195315.216 | 4226.0444 |
FALSE |
FALSE |
2008 | Clothing | 366507.844 | 4151.1235 |
FALSE |
FALSE |
2005 | Clothing | 31851.1628 | 90.9593 |
FALSE |
FALSE |
2006 | Clothing | 455730.9729 | 4233.039 |
FALSE |
FALSE |
2007 | Clothing | 815853.2868 | 12489.3835 |
FALSE |
FALSE |
2008 | Accessori | 153299.924 | 865.5945 |
FALSE |
FALSE |
2005 | Accessori | 18594.4782 | 4.293 |
FALSE |
FALSE |
2006 | Accessori | 86612.7463 | 1061.4872 |
FALSE |
FALSE |
2007 | Accessori | 275794.8403 | 4756.6546 |
FALSE |
TRUE |
||||
FALSE |
TRUE |
2008 | 15496115.89 | 41224.3038 | |
FALSE |
TRUE |
2005 | 7582953.67 | 4326.4144 | |
FALSE |
TRUE |
2006 | 22871907.85 | 184419.1335 | |
FALSE |
TRUE |
2007 | 30543780.84 | 297538.0745 | |
TRUE |
TRUE |
76494758.25 | 527507.9262 |