Semantische Ansichten abfragen¶
Erforderliche Berechtigungen für die Abfrage einer semantischen Ansicht¶
Wenn Sie eine Rolle verwenden, die nicht Eigentümer der semantischen Ansicht ist, müssen Sie über die Berechtigung SELECT für diese semantische Ansicht verfügen, um diese abzufragen.
Bemerkung
Um eine semantische Ansicht abzufragen, benötigen Sie die SELECT-Berechtigung für die in der semantischen Ansicht verwendeten Tabellen nicht. Sie benötigen die SELECT-Berechtigung nur für die semantische Ansicht selbst.
Dieses Verhalten ist konsistent mit den Berechtigungen, die zum Abfragen von Standardansichten erforderlich sind.
Informationen über die Erteilung von Berechtigungen für semantische Ansichten finden Sie unter Erteilung von Berechtigungen für semantische Ansichten.
Abfrage einer semantischen Ansicht¶
Um eine semantische Ansicht abzufragen, verwenden Sie die SEMANTIC_VIEW-Klausel in der FROM-Klausel. Im folgenden Beispiel werden die Dimension``customer_market_segment`` und die Metrik order_average_value
von der semantischen Ansicht``tpch_analysis`` ausgewählt, die Sie zuvor definiert haben:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS customer.customer_market_segment
METRICS orders.order_average_value
);
+-------------------------+---------------------+
| CUSTOMER_MARKET_SEGMENT | ORDER_AVERAGE_VALUE |
+-------------------------+---------------------+
| AUTOMOBILE | 142570.25947219 |
| FURNITURE | 142563.63314267 |
| MACHINERY | 142655.91550608 |
| HOUSEHOLD | 141659.94753445 |
| BUILDING | 142425.37987558 |
+-------------------------+---------------------+
Im folgenden Beispiel wählen die Dimension customer_name``und der Fakt``c_customer_order_count
aus der semantischen Ansicht tpch_analysis
aus:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS customer.customer_name
FACTS customer.c_customer_order_count
)
ORDER BY customer_name
LIMIT 5;
+--------------------+------------------------+
| CUSTOMER_NAME | C_CUSTOMER_ORDER_COUNT |
|--------------------+------------------------|
| Customer#000000001 | 9 |
| Customer#000000002 | 11 |
| Customer#000000003 | 0 |
| Customer#000000004 | 20 |
| Customer#000000005 | 10 |
+--------------------+------------------------+
Beachten Sie Folgendes:
Sie müssen in der SEMANTIC_VIEW-Klausel mindestens eine der folgenden Klauseln angeben:
METRICS
DIMENSIONS
FACTS
Sie können nicht alle diese Klauseln aus der SEMANTIC_VIEW-Klausel weglassen.
Wenn Sie eine Kombination dieser Klauseln angeben, ist Folgendes zu beachten:
Sie können FACTS und METRICS nicht in der gleichenSEMANTIC_VIEW-Klausel angeben.
Sie können jedoch sowohl FACTS als auchDIMENSIONS in einer Abfrage angeben. Sie sollten dies nur tun, wenn die Dimensionen die Fakten eindeutig bestimmen können.
Die Abfrage gruppiert die Ergebnisse nach Dimensionen: Wenn die Fakten nicht von den Dimensionen abhängen, können die Ergebnisse nicht-deterministisch sein.
Wenn Sie FACTS und DIMENSIONS angeben, müssen alle in der Abfrage verwendeten Fakten und Dimensionen (einschließlich diejenigen, die in der WHERE-Klausel angegeben sind), in der gleichen logischen Tabelle definiert sein.
Wenn Sie eine Dimension und eine Metrik angeben, muss die logische Tabelle für die Dimension mit der logischen Tabelle für die Metrik in Beziehung gesetzt werden.
Außerdem muss die logische Tabelle für die Dimension eine gleiche oder geringere Granularität aufweisen als die logische Tabelle für die Metrik.
Um festzustellen, welche Dimensionen diese Kriterien erfüllen, können Sie den SHOW SEMANTIC DIMENSIONS FOR METRIC-Befehl ausführen.
Weitere Details dazu finden Sie unter Auswahl der Dimensionen, die Sie für eine bestimmte Metrik zurückgeben können.
In der DIMENSIONS-Klausel können Sie einen Ausdruck angeben, der sich auf einen Fakt bezieht. Ähnlich verhält es sich mit der FACTS-Klausel, in der Sie einen Ausdruck angeben können, der sich auf eine Dimension bezieht. Beispiel:
-- Dimension expression that refers to a fact DIMENSIONS my_table.my_fact -- Fact expression that refers to a dimension FACTS my_table.my_dimension
Einer der Hauptunterschiede zwischen der Verwendung von DIMENSIONS und FACTS besteht darin, dass die Abfrage die Ergebnisse nach den Dimensionen und Ausdrücken gruppiert, die in derDIMENSIONS-Klausel angegeben sind.
Geben Sie die METRICS-, DIMENSIONS- und FACTS-Klauseln in der Reihenfolge an, in der sie in den Ergebnissen erscheinen sollen.
Wenn Sie möchten, dass die Abmessungen zuerst in den Ergebnissen erscheinen, geben Sie DIMENSIONS vor METRICS an. Andernfalls geben Sie zuerst METRICS an.
Nehmen wir zum Beispiel an, dass Sie zuerst die METRICS-Klausel angeben:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis METRICS customer.customer_order_count DIMENSIONS customer.customer_name ) ORDER BY customer_name LIMIT 5;
In der Ausgabe ist die erste Spalte die metrische Spalte (
customer_order_count
) und die zweite Spalte ist die Dimensionsspalte (customer_name
):+----------------------+--------------------+ | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME | |----------------------+--------------------| | 6 | Customer#000000001 | | 7 | Customer#000000002 | | 0 | Customer#000000003 | | 20 | Customer#000000004 | | 4 | Customer#000000005 | +----------------------+--------------------+
Wenn Sie stattdessen zuerst die DIMENSIONS-Klausel angeben:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_name METRICS customer.customer_order_count ) ORDER BY customer_name LIMIT 5;
In der Ausgabe ist die erste Spalte die Dimensionsspalte (
customer_name
) und die zweite Spalte ist die metrische Spalte (customer_order_count
):+--------------------+----------------------+ | CUSTOMER_NAME | CUSTOMER_ORDER_COUNT | |--------------------+----------------------| | Customer#000000001 | 6 | | Customer#000000002 | 7 | | Customer#000000003 | 0 | | Customer#000000004 | 20 | | Customer#000000005 | 4 | +--------------------+----------------------+
Sie können die durch eine SEMANTIC_VIEW-Klausel definierte Beziehung in anderen SQL-Konstrukten verwenden, einschließlich JOIN, PIVOT, UNPIVOT, GROUP BY und allgemeinen Tabellenausdrücken (CTEs).
Die Spaltenüberschriften der Ausgabe verwenden die unqualifizierten Namen der Metriken und Dimensionen.
Wenn Sie mehrere Metriken und Dimensionen mit denselben Namen haben, verwenden Sie einen Tabellenalias, um den Spaltenüberschriften unterschiedliche Namen zuzuweisen. Siehe Behandlung doppelter Spaltennamen in der Ausgabe.
Um alle Metriken oder Dimensionen in einer gegebenen logischen Tabelle zurückzugeben, verwenden Sie ein Sternchen als Platzhalter, qualifiziert durch den Namen der logischen Tabelle. Beispielsweise, um alle in der logischen Tabelle``customer`` definierten Metriken und Dimensionen zurückzugeben:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS customer.*
METRICS customer.*
);
+-----------------------+-------------------------+--------------------+----------------------+----------------------+----------------+----------------------+
| CUSTOMER_COUNTRY_CODE | CUSTOMER_MARKET_SEGMENT | CUSTOMER_NAME | CUSTOMER_NATION_NAME | CUSTOMER_REGION_NAME | CUSTOMER_COUNT | CUSTOMER_ORDER_COUNT |
|-----------------------+-------------------------+--------------------+----------------------+----------------------+----------------+----------------------|
| 18 | BUILDING | Customer#000034857 | INDIA | ASIA | 1 | 0 |
| 14 | AUTOMOBILE | Customer#000145116 | EGYPT | MIDDLE EAST | 1 | 0 |
...
Auswahl der Dimensionen, die Sie für eine bestimmte Metrik zurückgeben können¶
Wenn Sie eine Dimension und eine Metrik angeben, die zurückgegeben werden soll, muss die Basistabelle für die Dimension mit der Basistabelle für die Metrik in Beziehung stehen. Außerdem muss die Basistabelle für die Dimension eine gleiche oder geringere Granularität aufweisen als die Basistabelle für die Metrik.
Angenommen, Sie fragen die semantische Ansicht tpch_analysis
ab, die Sie in Beispiel für die Verwendung von SQL zur Erstellung einer semantischen Ansicht erstellt haben. Angenommen, Sie möchten die Dimension customer.customer_count
und die Metrik orders.order_date
zurückgeben:
SELECT * FROM SEMANTIC_VIEW (
tpch_analysis
DIMENSIONS orders.order_date
METRICS customer.customer_order_count
);
Diese Abfrage schlägt fehl, weil die Tabelle orders
für die Dimension order_date
eine höhere Granularität als die Tabelle``customer`` für die Metrik customer_order_count
hat:
010234 (42601): SQL compilation error:
Invalid dimension specified: The dimension entity 'ORDERS' must be related to and
have an equal or lower level of granularity compared to the base metric or dimension entity 'CUSTOMER'.
Um die Dimensionen aufzulisten, die Sie mit einer bestimmten Metrik zurückgeben können, führen Sie den Befehl SHOW SEMANTIC DIMENSIONS FOR METRIC aus. Beispiel:
SHOW SEMANTIC DIMENSIONS IN tpch_analysis FOR METRIC customer_order_count;
+------------+-------------------------+-------------+----------+----------+---------+
| table_name | name | data_type | required | synonyms | comment |
|------------+-------------------------+-------------+----------+----------+---------|
| CUSTOMER | CUSTOMER_COUNTRY_CODE | VARCHAR(15) | false | NULL | NULL |
| CUSTOMER | CUSTOMER_MARKET_SEGMENT | VARCHAR(10) | false | NULL | NULL |
| CUSTOMER | CUSTOMER_NAME | VARCHAR(25) | false | NULL | NULL |
| CUSTOMER | CUSTOMER_NATION_NAME | VARCHAR(25) | false | NULL | NULL |
| CUSTOMER | CUSTOMER_REGION_NAME | VARCHAR(25) | false | NULL | NULL |
| NATION | NATION_NAME | VARCHAR(25) | false | NULL | NULL |
+------------+-------------------------+-------------+----------+----------+---------+
Grundlegende Beispiele¶
Die folgenden Beispiele verwenden die Ansicht tpch_analysis
, die in Beispiel für die Verwendung von SQL zur Erstellung einer semantischen Ansicht definiert ist:
Metrik abrufen¶
Die folgende Anweisung ruft die Gesamtzahl der Kunden ab, indem sie eine Metrik abfragt:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
METRICS customer.customer_count
);
+----------------+
| CUSTOMER_COUNT |
+----------------+
| 15000 |
+----------------+
Gruppierung metrischer Daten nach einer Dimension¶
Die folgende Anweisung gruppiert metrische Daten (order_average_value
) nach einer Dimension (customer_market_segment
):
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS customer.customer_market_segment
METRICS orders.order_average_value
);
+-------------------------+---------------------+
| CUSTOMER_MARKET_SEGMENT | ORDER_AVERAGE_VALUE |
+-------------------------+---------------------+
| AUTOMOBILE | 142570.25947219 |
| FURNITURE | 142563.63314267 |
| MACHINERY | 142655.91550608 |
| HOUSEHOLD | 141659.94753445 |
| BUILDING | 142425.37987558 |
+-------------------------+---------------------+
Verwendung der Subklausel SEMANTIC_VIEW mit anderen Konstrukten¶
Das folgende Beispiel zeigt, wie Sie die Dimensionen und Metriken in der Subklausel SEMANTIC_VIEW mit anderen SQL-Konstrukten verwenden können, um Ergebnisse zu filtern, zu sortieren und einzuschränken:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS customer.customer_name
METRICS orders.average_line_items_per_order,
orders.order_average_value
)
WHERE average_line_items_per_order > 4
ORDER BY average_line_items_per_order DESC
LIMIT 5;
+--------------------+------------------------------+---------------------+
| CUSTOMER_NAME | AVERAGE_LINE_ITEMS_PER_ORDER | ORDER_AVERAGE_VALUE |
+--------------------+------------------------------+---------------------+
| Customer#000045678 | 6.87 | 175432.21 |
| Customer#000067890 | 6.42 | 182376.58 |
| Customer#000012345 | 5.93 | 169847.42 |
| Customer#000034567 | 5.76 | 178952.36 |
| Customer#000056789 | 5.64 | 171248.75 |
+--------------------+------------------------------+---------------------+
Angabe von skalaren Ausdrücken, die Dimensionen verwenden¶
Im folgenden Beispiel wird ein skalarer Ausdruck verwendet, der sich auf eine Dimension in der DIMENSIONS-Klausel bezieht:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS DATE_PART('year', orders.order_date)
);
+--------------------------------------+
| DATE_PART('YEAR', ORDERS.ORDER_DATE) |
|--------------------------------------|
| 1992 |
| 1997 |
| 1998 |
| 1993 |
| 1996 |
| 1994 |
| 1995 |
+--------------------------------------+
Angabe der WHERE-Klausel¶
Im folgenden Beispiel wird eine WHERE-Klausel angegeben, die sich auf eine Dimension in der DIMENSIONS-Klausel bezieht:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
DIMENSIONS orders.order_date
METRICS orders.average_line_items_per_order,
orders.order_average_value
WHERE orders.order_date > '1995-01-01'
)
ORDER BY order_date ASC
LIMIT 5;
+------------+------------------------------+---------------------+
| ORDER_DATE | AVERAGE_LINE_ITEMS_PER_ORDER | ORDER_AVERAGE_VALUE |
|------------+------------------------------+---------------------|
| 1995-01-02 | 3.884547 | 151237.54900533 |
| 1995-01-03 | 3.894819 | 145751.84384615 |
| 1995-01-04 | 3.838863 | 145331.39167457 |
| 1995-01-05 | 4.040689 | 150723.67353678 |
| 1995-01-06 | 3.990755 | 152786.54109399 |
+------------+------------------------------+---------------------+
Fakten in WHERE-Klausel abrufen¶
Im folgenden Beispiel wird der Fakt region.r_name
in einer Bedingung in der WHERE-Klausel verwendet:
SELECT * FROM SEMANTIC_VIEW(
tpch_analysis
FACTS customer.c_customer_order_count
WHERE orders.order_date < '2021-01-01' AND region.r_name = 'AMERICA'
);
Behandlung doppelter Spaltennamen in der Ausgabe¶
Die Ausgabespalten verwenden die unqualifizierten Namen der Metriken und Dimensionen. Wenn Sie mehrere Metriken und Dimensionen mit demselben Namen haben, werden mehrere Spalten denselben Namen verwenden.
Um dies zu umgehen, verwenden Sie einen Tabellenalias, um den Spalten andere Namen zuzuweisen.
Nehmen wir zum Beispiel an, dass Sie die folgende semantische Ansicht definieren, die die Dimensionen nation.name
und region.name
definiert:
CREATE OR REPLACE SEMANTIC VIEW duplicate_names
TABLES (
nation AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.NATION PRIMARY KEY (n_nationkey),
region AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.REGION PRIMARY KEY (r_regionkey)
)
RELATIONSHIPS (
nation (n_regionkey) REFERENCES region
)
DIMENSIONS (
nation.name AS nation.n_name,
region.name AS region.r_name
);
Wenn Sie diese Ansicht abfragen und diese beiden Dimensionen auswählen, enthält die Ausgabe zwei Spalten mit dem Namen name
ohne Qualifizierer:
SELECT * FROM SEMANTIC_VIEW(
duplicate_names
DIMENSIONS nation.name, region.name
);
+----------------+-------------+
| NAME | NAME |
+----------------+-------------+
| BRAZIL | AMERICA |
| MOROCCO | AFRICA |
| UNITED KINGDOM | EUROPE |
| IRAN | MIDDLE EAST |
| FRANCE | EUROPE |
| ... | ... |
+----------------+-------------+
Um die Spalten eindeutig zuzuordnen, verwenden Sie einen Tabellenalias, um verschiedene Spaltennamen zu vergeben (zum Beispiel nation_name
und region_name
):
SELECT * FROM SEMANTIC_VIEW(
duplicate_names
DIMENSIONS nation.name, region.name
) AS table_alias(nation_name, region_name);
+----------------+-------------+
| NATION_NAME | REGION_NAME |
+----------------+-------------+
| BRAZIL | AMERICA |
| MOROCCO | AFRICA |
| UNITED KINGDOM | EUROPE |
| IRAN | MIDDLE EAST |
| FRANCE | EUROPE |
| ... | ... |
+----------------+-------------+
Fensterfunktionsmetriken definieren und abfragen¶
Sie können Metriken festlegen, die Fensterfunktionen abrufen und aggregierte Werte übergeben. Diese Metriken werden Fensterfunktions-Metriken genannt.
Die folgenden Beispiele veranschaulichen den Unterschied zwischen einer Metrik einer Fensterfunktion und einer Metrik, die einen Ausdruck auf Zeilenebene an eine Fensterfunktion übergibt:
Die folgende Metrik ist eine Fensterfunktionsmetrik:
METRICS ( table_1.metric_1 AS SUM(table_1.metric_3) OVER( ... ) )
In diesem Beispiel nimmt die SUM-Fensterfunktion eine andere Metrik (
table_1.metric_3
) als Argument.Die folgende Metrik ist auch eine Fensterfunktionsmetrik:
METRICS ( table_1.metric_2 AS SUM( SUM(table_1.column_1) ) OVER( ... ) )
In diesem Beispiel nimmt die SUM-Fensterfunktion einen gültigen metrischen Ausdruck (
SUM(table_1.column_1)
) als Argument.Die folgende Metrik ist keine Fensterfunktionsmetrik:
METRICS ( table_1.metric_1 AS SUM( SUM(table_1.column_1) OVER( ... ) ) )
In diesem Beispiel nimmt die SUM-Fensterfunktion eine Spalte (
table_1.column_1
) als Argument. Das Ergebnis dieses Fensterfunktionsaufrufs wird an einen separaten aggregierten SUM-Funktionsaufruf übergeben.
In den folgenden Abschnitten wird erklärt, wie Sie Fensterfunktionsmetriken definieren und abfragen:
Fensterfunktions-Metriken definieren¶
Verwenden Sie bei der Angabe eines Fensterfunktionsaufrufs diese Syntax, die in Parameter für Fensterfunktionskennzahlen beschrieben wird.
Das folgende Beispiel erstellt eine semantische Ansicht, die die Definitionen mehrerer Fensterfunktions-Metriken enthält. Das Beispiel verwendet Tabellen aus der TPC-DS-Beispieldatenbank. Weitere Informationen zum Zugriff auf diese Datenbank finden Sie unter Wie füge ich das TPC-DS-Dataset zu meinem Konto hinzu?.
CREATE OR REPLACE SEMANTIC VIEW sv_window_function_example
TABLES (
store_sales AS SNOWFLAKE_SAMPLE_DATA.TPCDS_SF10TCL.store_sales,
date AS SNOWFLAKE_SAMPLE_DATA.TPCDS_SF10TCL.date_dim PRIMARY KEY (d_date_sk)
)
RELATIONSHIPS (
sales_to_date AS store_sales(ss_sold_date_sk) REFERENCES date(d_date_sk)
)
DIMENSIONS (
date.date AS d_date,
date.d_date_sk AS d_date_sk,
date.year AS d_year
)
METRICS (
store_sales.total_sales_quantity AS SUM(ss_quantity)
WITH SYNONYMS = ('Total sales quantity'),
store_sales.avg_7_days_sales_quantity as AVG(total_sales_quantity)
OVER (PARTITION BY EXCLUDING date.date, date.year ORDER BY date.date
RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW)
WITH SYNONYMS = ('Running 7-day average of total sales quantity'),
store_sales.total_sales_quantity_30_days_ago AS LAG(total_sales_quantity, 30)
OVER (PARTITION BY EXCLUDING date.date, date.year ORDER BY date.date)
WITH SYNONYMS = ('Sales quantity 30 days ago'),
store_sales.avg_7_days_sales_quantity_30_days_ago AS AVG(total_sales_quantity)
OVER (PARTITION BY EXCLUDING date.date, date.year ORDER BY date.date
RANGE BETWEEN INTERVAL '36 days' PRECEDING AND INTERVAL '30 days' PRECEDING)
WITH SYNONYMS = ('Running 7-day average of total sales quantity 30 days ago')
);
Sie können in der Metrikdefinition auch andere Metriken aus derselben logischen Tabelle verwenden. Beispiel:
METRICS (
orders.m3 AS SUM(m2) OVER (PARTITION BY m1 ORDER BY m2),
orders.m4 AS ((SUM(m2) OVER (..)) / m1) + 1
)
Bemerkung
Sie können Fensterfunktions-Metriken nicht in Berechnungen auf Zeilenebene (Fakten und Dimensionen) oder in den Definitionen anderer Metriken verwenden.
Fensterfunktionsmetriken abfragen¶
Wenn Sie eine semantische Ansicht abfragen und die Abfrage eine Fensterfunktionsmetrik zurückgibt, müssen Sie auch die Dimensionen zurückgeben, die in PARTITION BY dimension
, PARTITION BY EXCLUDING dimension
und ORDER BY dimension
in der CREATE SEMANTIC VIEW-Anweisung für die semantische Ansicht angegeben werden.
Angenommen, Sie geben die Dimensionen date.date
und date.year
in den Klauseln PARTITION BY EXCLUDING und ORDER BY in der Definition der Metrik store_sales.avg_7_days_sales_quantity
an:
CREATE OR REPLACE SEMANTIC VIEW sv_window_function_example
...
DIMENSIONS (
...
date.date AS d_date,
...
date.year AS d_year
...
)
METRICS (
...
store_sales.avg_7_days_sales_quantity as AVG(total_sales_quantity)
OVER (PARTITION BY EXCLUDING date.date, date.year ORDER BY date.date
RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW)
WITH SYNONYMS = ('Running 7-day average of total sales quantity'),
...
);
Wenn Sie die Metrik store_sales.avg_7_days_sales_quantity
in einer Abfrage zurückgeben, müssen Sie auch die Dimensionen date.date
und date.year
zurückgeben:
SELECT * FROM SEMANTIC_VIEW (
sv_window_function_example
DIMENSIONS date.date, date.year
METRICS store_sales.avg_7_days_sales_quantity
);
Wenn Sie die Dimensionen date.date
und date.year
auslassen, tritt ein Fehler auf.
010260 (42601): SQL compilation error:
Invalid semantic view query: Dimension 'DATE.DATE' used in a
window function metric must be requested in the query.
Um festzustellen, welche Dimensionen Sie in der Abfrage angeben müssen, führen Sie den Befehl SHOW SEMANTIC DIMENSIONS FOR METRIC aus. Um beispielsweise die Dimensionen zu bestimmen, die Sie beim Abrufen der Metrik store_sales.avg_7_days_sales_quantity
angeben müssen, führen Sie diesen Befehl aus:
SHOW SEMANTIC DIMENSIONS IN sv_window_function_example FOR METRIC avg_7_days_sales_quantity;
In der Ausgabe des Befehls steht in der Spalte required
true
für die Dimensionen, die Sie in der Abfrage angeben müssen.
+------------+-----------+--------------+----------+----------+---------+
| table_name | name | data_type | required | synonyms | comment |
|------------+-----------+--------------+----------+----------+---------|
| DATE | DATE | DATE | true | NULL | NULL |
| DATE | D_DATE_SK | NUMBER(38,0) | false | NULL | NULL |
| DATE | YEAR | NUMBER(38,0) | true | NULL | NULL |
+------------+-----------+--------------+----------+----------+---------+
Die weiteren folgenden Beispiele fragen die Fensterfunktionsmetriken ab, die in Fensterfunktions-Metriken definieren definiert sind. Beachten Sie, dass die DIMENSIONS-Klausel die Dimensionen umfasst, die in den Klauseln PARTITION BY EXCLUDING und ORDER BY in den Metrikdefinitionen angegeben sind.
Das folgende Beispiel gibt die Umsatzmenge vor 30 Tagen zurück:
SELECT * FROM SEMANTIC_VIEW (
sv_window_function_example
DIMENSIONS date.date, date.year
METRICS store_sales.total_sales_quantity_30_days_ago
);
Das folgende Beispiel gibt den laufenden 7-Tage-Durchschnitt des Gesamtumsatzes von 30 Tagen zurück:
SELECT * FROM SEMANTIC_VIEW (
sv_window_function_example
DIMENSIONS date.date, date.year
METRICS store_sales.avg_7_days_sales_quantity_30_days_ago
);