Freigeben über


Verwenden von Aggregatfunktionen

Dieses Thema enthält Beispiele zum Verwenden der Aggregatfunktionen (Sum, Min, Max, Count und Distinct Count) in Measures. Die für die Abfrage verwendeten Beispiele basieren auf denselben Cubezellen wie die folgenden Beispiele, um die jeweiligen Auswirkungen beim Ändern der Funktion zu zeigen.

Der in diesen Beispielen verwendet Cube verfügt über ein einzelnes Measure, das Sales-Measure, das auf der Sales_Amount-Spalte der Sales-Faktentabelle basiert. Der Cube verfügt über drei Dimensionen:

  • Customers, auf Basis der Customers-Tabelle, in der diese Ebenen enthalten sind (von der höchsten bis zur niedrigsten Ebene):

    • (Alle)

    • Customer, mit Customer_Name als Elementnamenspalte und Customer_ID als Elementschlüsselspalte.

  • Retail Stores, auf Basis der Retail_Stores-Tabelle, in der diese Ebenen enthalten sind (von der höchsten bis zur niedrigsten Ebene):

    • (Alle)

    • Retail Store, mit Retail_Store_Name als Elementnamenspalte und Retail_Store_ID als Elementschlüsselspalte.

  • Products, auf Basis der Products-Tabelle, in der diese Ebenen enthalten sind (von der höchsten bis zur niedrigsten Ebene):

    • (Alle)

    • Product Category, mit Product_Category als Elementnamenspalte und Elementschlüsselspalte.

    • Product, mit Product_Name als Elementnamenspalte und Product_ID als Elementschlüsselspalte.

Weitere Informationen zu Dimensionen und Ebenen finden Sie im Thema zu Dimensionen und Ebenen.

Hier wird das Schema des Cubes gezeigt.

Hier wird die Faktentabelle des Cubes, die Sales-Tabelle, gezeigt.

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

Hier wird eine der im Cube enthaltenen Dimensionstabellen, die Customers-Tabelle, gezeigt.

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

Hier wird eine weitere im Cube enthaltene Dimensionstabelle, die Retail_Stores-Tabelle, gezeigt.

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

Hier wird die letzte Dimensionstabelle des Cubes, die Products-Tabelle, gezeigt.

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

Wenn Sum der Eigenschaftswert der Aggregate-Funktion eines Measures ist, wird der Measurewert einer Cubezelle berechnet, indem die Werte der Quellspalte des Measures nur von den Zeilen für die Kombination der Elemente, die die Zelle definiert, und die nachfolgenden Werte dieser Elemente addiert werden.

Beispiele

In den folgenden Beispielen werden Werte zurückgegeben, die akkumulierte Verkaufswerte darstellen.

A: Abfragen einer atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produkt A wird der Wert 800 zurückgegeben.

B: Abfragen einer nicht atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produktkategorie AB wird der Wert 900 zurückgegeben.

C: Abfragen mehrerer Cubezellen

Bei einer Abfrage des Sales-Measures werden die einzelnen Einzelhandelsgeschäfte auf der X-Achse abgelegt, die Produkte werden unter den jeweiligen Produktkategorien auf der Y-Achse geschachtelt, und der Cube wird nach allen Kunden in Slices aufgeteilt. Dabei wird das folgende Dataset zurückgegeben.

Alle Einzelhandelsgeschäfte

A

B

C

D

Alle Produkte

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

Wenn Min der Eigenschaftswert der Aggregate-Funktion eines Measures ist, wird der Measurewert einer Cubezelle berechnet, indem der niedrigste Wert der Quellspalte des Measures nur von den Zeilen für die Kombination der Elemente, die die Zelle definiert, und die nachfolgenden Werte dieser Elemente verwendet wird.

Beispiele

In den folgenden Beispielen werden Werte zurückgegeben, die den niedrigsten Verkaufspreis darstellen.

A: Abfragen einer atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produkt A wird der Wert 250 zurückgegeben.

B: Abfragen einer nicht atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produktkategorie AB wird der Wert 100 zurückgegeben.

C: Abfragen mehrerer Cubezellen

Bei einer Abfrage des Sales-Measures werden die einzelnen Einzelhandelsgeschäfte auf der X-Achse abgelegt, die Produkte werden unter den jeweiligen Produktkategorien auf der Y-Achse geschachtelt, und der Cube wird nach allen Kunden in Slices aufgeteilt. Dabei wird das folgende Dataset zurückgegeben.

Alle Einzelhandelsgeschäfte

A

B

C

D

Alle Produkte

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

Wenn Max der Eigenschaftswert der Aggregate-Funktion eines Measures ist, wird der Measurewert einer Cubezelle berechnet, indem der höchste Wert der Quellspalte des Measures nur von den Zeilen für die Kombination der Elemente, die die Zelle definiert, und die nachfolgenden Werte dieser Elemente verwendet wird.

Beispiele

In den folgenden Beispielen werden Werte zurückgegeben, die den höchsten Verkaufspreis darstellen.

A: Abfragen einer atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produkt A wird der Wert 300 zurückgegeben.

B: Abfragen einer nicht atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produktkategorie AB wird der Wert 300 zurückgegeben.

C: Abfragen mehrerer Cubezellen

Bei einer Abfrage des Sales-Measures werden die einzelnen Einzelhandelsgeschäfte auf der X-Achse abgelegt, die Produkte werden unter den jeweiligen Produktkategorien auf der Y-Achse geschachtelt, und der Cube wird nach allen Kunden in Slices aufgeteilt. Dabei wird das folgende Dataset zurückgegeben.

Alle Einzelhandelsgeschäfte

A

B

C

D

Alle Produkte

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

Wenn Count der Eigenschaftswert der Aggregate-Funktion eines Measures ist, wird der Measurewert einer Cubezelle berechnet, indem die Anzahl der Werte der Quellspalte des Measures nur von den Zeilen für die Kombination der Elemente, die die Zelle definiert, und die nachfolgenden Werte dieser Elemente addiert wird.

Beispiele

In den folgenden Beispielen werden Werte zurückgegeben, die die Anzahl der Verkaufstransaktionen darstellen.

A: Abfragen einer atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produkt A wird der Wert 3 zurückgegeben.

B: Abfragen einer nicht atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produktkategorie AB wird der Wert 4 zurückgegeben.

C: Abfragen mehrerer Cubezellen

Bei einer Abfrage des Sales-Measures werden die einzelnen Einzelhandelsgeschäfte auf der X-Achse abgelegt, die Produkte werden unter den jeweiligen Produktkategorien auf der Y-Achse geschachtelt, und der Cube wird nach allen Kunden in Slices aufgeteilt. Dabei wird das folgende Dataset zurückgegeben.

Alle Einzelhandelsgeschäfte

A

B

C

D

Alle Produkte

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

Wenn Distinct Count der Eigenschaftswert der Aggregate-Funktion eines Measures ist, wird der Measurewert einer Cubezelle berechnet, indem die Anzahl eindeutiger Werte der Quellspalte des Measures nur von den Zeilen für die Kombination der Elemente, die die Zelle definiert, und die nachfolgenden Werte dieser Elemente addiert wird.

Ein Measure mit einem Aggregate-Funktion-Eigenschaftswert von Distinct Count wird als Distinct Count-Measure bezeichnet. Ein Distinct Count-Measure kann verwendet werden, um die Vorkommen der Elemente der untersten Ebene einer Dimension in der Faktentabelle zu zählen. Da nur unterschiedliche Elemente gezählt werden, wird ein mehrfach auftretendes Element nur einmal gezählt.

Distinct Count-Measures werden im Allgemeinen dazu verwendet, für jedes Element einer Dimension zu bestimmen, wie viele unterschiedliche Elemente der untersten Ebene einer anderen Dimension Zeilen der Faktentabelle gemeinsam nutzen. Beispielsweise wird in einem Sales-Cube bestimmt, wie viele unterschiedliche Produkte von den einzelnen Kunden und Kundengruppen gekauft wurden. (Auf die einzelnen Elemente der Customers-Dimension bezogen bedeutet das: Von wie vielen unterschiedlichen Elementen der untersten Ebene der Products-Dimension werden Zeilen der Faktentabelle gemeinsam genutzt?) Ein weiteres Beispiel: In einem Cube für die Zählung der Besucher einer Internetsite wird pro Sitebesucher und Sitebesuchergruppe bestimmt, wie viele unterschiedliche Seiten der Internetsite besucht wurden. (Auf die einzelnen Elemente der Site Visitors-Dimension bezogen bedeutet das: Von wie vielen unterschiedlichen Elementen der untersten Ebene der Pages-Dimension werden Zeilen der Faktentabelle gemeinsam genutzt?) In jedem dieser Beispiele werden die Elemente der untersten Ebene der zweiten Dimension über ein Distinct Count-Measure gezählt.

Diese Art von Analyse ist nicht auf zwei Dimensionen beschränkt. Tatsächlich kann ein Distinct Count-Measure getrennt und nach einer beliebigen Kombination von Dimensionen des Cubes in Slices aufgeteilt werden, einschließlich der Dimension, die die gezählten Elemente enthält.

Ein Distinct Count-Measure, das zur Zählung von Elementen dient, basiert auf einer Fremdschlüsselspalte der Faktentabelle. (Das heißt, dass die Source Column-Eigenschaft des Measures diese Spalte identifiziert.) Diese Spalte verknüpft die Dimensionstabellenspalte, die die über das Distinct Count-Measure gezählten Elemente identifiziert.

Die Verwendung von Distinct Count-Measures in regulären Cubes ist begrenzt. In einem regulären Cube ist nur ein Distinct Count-Measure zulässig, und dies nur, wenn der reguläre Cube keine Dimensionen mit benutzerdefinierten Rollupoperatoren oder benutzerdefinierten Rollupformeln enthält. Diese Begrenzungen gelten jedoch nicht für virtuelle Cubes. Ein virtueller Cube kann mehrere Distinct Count-Measures und auch benutzerdefinierte Rollupoperatoren und benutzerdefinierte Rollupformeln in Verbindung mit Distinct Count-Measures verwenden.

Da Distinct Count-Measures nicht additiv sind, werden die Möglichkeiten von Microsoft® SQL Server™ 2000 Analysis Services zum Vorabaggregieren des Cubes durch das Vorhandensein eines Distinct Count-Measures wesentlich eingeschränkt. Aus diesem Grund wird empfohlen, dass jedes Distinct Count-Measure in einem eigenen Cube ohne andere Measures abgelegt wird. Diese Cubes, in denen Distinct Count-Measures enthalten sind, können dann zur effizienten Verwaltung aller Measures mit anderen Cubes in einem virtuellen Cube verknüpft werden.

HinweisHinweis

Verwendet ein Cube ein Distinct Count-Measure, wird der gesamte Cube als nicht additiv behandelt. Nicht additive Cubes unterstützen keine dynamisch erstellten Elemente. Daher geben MDX-Funktionen, wie z. B. VisualTotals, die Elemente dynamisch erstellen, bei der Verwendung in einem nicht additiven Cube einen Fehler zurück. Dies hat auch Auswirkungen auf andere Features, wie z. B. das Aktivieren von sichtbaren Gesamtwerten in der Dimensionssicherheit, an denen dynamisch erstellte Elemente beteiligt sind.

Beispiele

In den folgenden Beispielen werden Werte zurückgegeben, die die Anzahl der Verkaufstransaktionen mit einem eindeutigen Verkaufspreis darstellen.

A: Abfragen einer atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produkt A wird der Wert 2 zurückgegeben.

B: Abfragen einer nicht atomaren Cubezelle

Bei einer Abfrage des Sales-Measures für Kunde A, Einzelhandelsgeschäft A und Produktkategorie AB wird der Wert 3 zurückgegeben.

C: Abfragen mehrerer Cubezellen

Bei einer Abfrage des Sales-Measures werden die einzelnen Einzelhandelsgeschäfte auf der X-Achse abgelegt, die Produkte werden unter den jeweiligen Produktkategorien auf der Y-Achse geschachtelt, und der Cube wird nach allen Kunden in Slices aufgeteilt. Dabei wird das folgende Dataset zurückgegeben.

Alle Einzelhandelsgeschäfte

A

B

C

D

Alle Produkte

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