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.
Hinweis: |
---|
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 |
Siehe auch
Konzepte
Definieren von semiadditivem Verhalten