Verwenden des ShopifyQL-Abfrageeditors
<<<<<<< HEAD:content/de/manual/reports-and-analytics/shopify-reports/new-analytics/shopifyql-editor.md
======= >>>>>>> a8772b4ba2f5 (Relocated all the pages from /new-analytics/ to existing folders.):content/de/manual/reports-and-analytics/shopify-reports/report-types/shopifyql-editor.mdDu kannst ShopifyQL mit dem neuen Shopify Analytics verwenden, um deine eigene Unternehmensdatenbank zu erkunden und die Daten abzurufen, die dir dabei helfen, dein Unternehmen besser zu verstehen.
ShopifyQL oder Shopify Query Language ist die Abfragesprache von Shopify für Commerce. Abfragesprache wird verwendet, um Daten aus Datenbanken abzufragen und abzurufen. Die Daten deines Shops werden in Datenbanktabellen gespeichert, die in definierten Spalten und Zeilen strukturiert sind. Spalten definieren die Art der Informationen, die sie enthalten, wie z. B. Verkäufe, und Zeilen, die den tatsächlichen Wert des Datentyps angeben, wie z. B. 2.450 USD an Verkäufen.
Um deine Daten in einem aussagekräftigen Format abzurufen, muss eine Abfrage an die Datenbank übermittelt werden. Bei einer Abfrage handelt es sich um eine Frage nach bestimmten Daten als Antwort, die aus Keywords und den entsprechenden Parametern besteht. Die Kombination aus mehreren Keywords mit spezifischen Parametern erstellt deine Abfrage. Nachdem du deine Abfrage erstellt hast, kannst du sie ausführen und einen Bericht erhalten.
Glossar der Begriffe
Begriff | Definition |
---|---|
Maß | Ein Attribut, das Daten unterteilt, sodass sie sortiert und deutlicher wiedergegeben werden können. Häufige Beispiele für Dimensionen sind Zeit, Produkte und Orte. Dimensionen werden in ShopifyQL als Parameter verwendet. |
Keyword | ShopifyQL-Syntax, der als Befehl fungiert, um deine Abfrage zu leiten. |
Kennzahl | Eine quantitative Messung von Daten. Häufige Beispiele für Kennzahlen enthalten den Gesamtumsatz, die Anzahl an Bestellungen und den Bruttogewinn. |
Parameter | ShopifyQL-Syntax, der die Datenbankelemente oder -details identifiziert, die Teil deiner Abfrage sein sollen. |
Operator | Ein bestimmtes Wort oder Zeichen, das als Teil einer Abfrage verwendet wird. Beispiele sind STARTS WITH , >= oder last_week . |
Du musst die folgenden Voraussetzungen erfüllen, wenn du eine gültige Berichtsabfrage mit ShopifyQL erstellst:
- Du kannst eine gesamte Abfrage in einer Zeile oder in separaten Zeilen platzieren.
- Du musst mindestens die Keywords
FROM
undSHOW
mit den entsprechenden Parametern angeben. Alle anderen Keywords und Parameter sind optional. - Alle Keywords in einer Abfrage müssen in der folgenden Reihenfolge enthalten sein:
1.
FROM
2.SHOW
3.WHERE
4.GROUP BY
5.TIMESERIES
6.WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
7.HAVING
8.SINCE
&UNTIL
oderDURING
9.COMPARE TO
& optionalUNTIL
10.ORDER BY
11.LIMIT
12.VISUALIZE
&TYPE
Dies ist ein Beispiel für ShopifyQL, das als Abfrage mit der richtigen Syntax geschrieben ist. Die Keywords sind fett gedruckt, die entsprechenden Parameter sind mit generischen Platzhaltern enthalten und optionale Parameter sind in Klammern angegeben:
FROM table_name1, table_name2, ...
SHOW column1 { AS alias }, column2 { AS alias }, ...
WHERE condition
GROUP BY dimension
TIMESERIES time_dimension
WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
HAVING condition
SINCE date_offset
UNTIL date_offset
DURING named_date_range
COMPARE TO [date_offset, ...]
ORDER BY column { ASC | DESC }
LIMIT number { OFFSET number }
VISUALIZE [alias1, alias2, ...]
TYPE { visualization_type }
LIMIT number
ShopifyQL-Keywords
ShopifyQL-Abfragen reichen von grundlegend, für Dateneinblicke auf hoher Ebene, bis umfassend, für detaillierte Einblicke. Jedes Keyword hat eine bestimmte Funktion, die deine Abfrage ausbaut.
Keyword | Beschreibung |
---|---|
FROM | Legt fest, aus welcher Datensatztabelle die Daten ausgewählt werden. |
SHOW | Wählt die Spalten aus, die du aus der Datensatztabelle extrahieren möchtest. |
WHERE | Legt die Bedingung(en) fest, die Zeilen erfüllen müssen, um ausgewählt zu werden. |
GROUP BY | Gruppiert die extrahierten Daten anhand einer Dimension oder anhand von Zeitdimensionen. |
TIMESERIES | Unterscheidet die Gruppierung nach Zeitdimensionen und füllt Daten in einer Abfrage aus. |
WITH | Verändert die Verhaltensweise bestimmter ShopifyQL-Keywords. |
HAVING | Filtert die Ergebnisse einer Abfrage, nachdem sie gruppiert wurden. |
SINCE | Zeigt Daten seit einem bestimmten Zeitpunkt in der Vergangenheit an. Oft kombiniert mit UNTIL . |
UNTIL | Zeigt Daten bis zu einem bestimmten Zeitpunkt in der Vergangenheit an. Oft kombiniert mit SINCE oder COMPARE TO . |
DURING | Zeigt Daten während einer bestimmten Zeit in der Vergangenheit an. |
COMPARE TO | Zeigt Daten für den Vergleich mit einer bestimmten Zeit in der Vergangenheit an. |
ORDER BY | Legt fest, nach welcher Spalte die Daten sortiert werden sollen. |
LIMIT | Begrenzt die Anzahl an angezeigten Datenzeilen. |
VISUALIZE | Zeigt deine Daten in einer Zeile oder Leiste an. Du kannst mit TYPE angeben, welche Visualisierung du möchtest. |
AS | Ein optionales Keyword, mit dem eine Spalte in einen Namen deiner Wahl umbenannt wird. |
Um die einfachste ShopifyQL-Abfrage zu erstellen, werden nur zwei Keywords benötigt: FROM
und SHOW
, in genau dieser Reihenfolge. FROM
, gefolgt von einem Tabellennamenparameter, legt fest, welche Tabellen du abfragen möchtest. SHOW
, gefolgt von einer Anzahl von Spaltennamenparametern, legt die Spalten fest, die du auswählen möchtest.
SHOW
kann verwendet werden, um die Reihenfolge anzugeben, in der Kennzahlen und Dimensionen im Bericht zurückgegeben werden.
Du kannst beispielsweise die Summe des Gesamtumsatzes ausgeben, indem du diese Abfrage schreibst:
FROM sales
SHOW total_sales
WHERE
Mit dem WHERE
-Keyword kannst du einen Dimensionsfilter auf eine gesamte ShopifyQL-Abfrage anwenden. Der Filter kann sowohl von Vergleichsoperatoren (z. B. mehr als >
), logischen Operatoren (z. B. AND
oder NOT
) als auch von Teilstring- und Array-Matching (z. B. STARTS WITH
und CONTAINS
) geändert werden.
WHERE
Bedingungen müssen die folgenden Voraussetzungen erfüllen:
- Werte müssen in einfachen Anführungszeichen (') und nicht in doppelten Anführungszeichen (") angegeben werden.
- Bedingungen dürfen keine arithmetischen Elemente enthalten.
- Bedingungen können nur auf eine Dimension verweisen, nicht auf eine Kennzahl.
Wenn du beispielsweise den Gesamtumsatz nach dem Land der Rechnungsadresse gefiltert ausgeben möchtest, lautet deine Abfrage:
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'
GROUP BY product_title, product_type, product_vendor
Wie im obigen Beispiel kannst du den Ergebnissatz mit dem Parameter WHERE
filtern, auch wenn dieser Parameter nicht im Keyword SHOW
enthalten ist. In diesem Fall wird der Gesamtumsatz nur für Bestellungen aus Kanada gefiltert, obwohl billing_country
im Ergebnissatz nicht enthalten ist.
Vergleichsoperatoren
Das Keyword WHERE
verwendet Vergleichsoperatoren, um Daten zu filtern. Im obigen Beispiel wurde =
verwendet, um festzulegen, dass die Abfrage nach einem bestimmten Wert filtert. Jedoch stehen dir noch weitere Operatoren zur Verfügung:
Vergleichsoperator | Beschreibung |
---|---|
= | entspricht |
!= | entspricht nicht |
< | weniger als |
> | größer als |
<= | kleiner als oder gleich |
>= | größer als oder gleich |
Um deine Daten gründlicher zu filtern, kannst du logische Operatoren zu deiner Abfrage hinzufügen. Die logischen Operatoren für ShopifyQL sind:
Logischer Operator | Beschreibung |
---|---|
AND | Filtern, um alle Zeilen anzuzeigen, deren Bedingungen durch AND getrennt und erfüllt sind. |
OR | Filtern, um alle Zeilen anzuzeigen, bei denen eine der durch OR getrennten Bedingungen erfüllt ist. |
NOT | Filtern, um nur Zeilen anzuzeigen, deren Bedingungen nicht erfüllt sind, z. B. Zeilen, die den festgelegten Wert nicht enthalten. |
Du kannst mehrere Filter mit dem Keyword WHERE
verwenden, indem du logische Operatoren hinzufügst.
Mit der Ergänzung zur Beispiel-Datensatzabfrage, die eine monatliche Zusammenfassung des Nettoumsatzes für alle Bestellungen von getrockneten Pfirsichen mit einer Rechnungsadresse in Kanada und einem angewendeten Rabatt zurückgibt, sieht die Abfrage wie folgt aus:
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country = 'Canada' AND product_title = 'Dried Peaches' AND is_discounted_sale = true
GROUP BY product_title, product_type, product_vendor
GROUP BY
Um eine Kennzahl anhand einer Dimension zu unterteilen, z. B. zum Gruppieren von Verkäufen nach Region, verwende das Keyword GROUP BY
. Das Keyword GROUP BY
kann mit einem beliebigen Parameter des Typs "dimension" gekoppelt werden.
Eine Abfrage, die den Gesamtumsatz nach Land und Region der Rechnungsadresse zusammenfasst, wird beispielsweise folgendermaßen geschrieben:
FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region
Hier ist ein weiteres Beispiel für eine Abfrage, die die zeitliche Dimension nutzt, um den Gesamtumsatz nach Monat anzuzeigen:
FROM sales
SHOW total_sales
GROUP BY month
Die obenstehende Abfrage gibt keine Monate zurück, in denen keine Umsätze generiert wurden. Wenn du eine Abfrage ausführen möchtest, die einen vollständigen Zeitraum ohne Unterbrechungen zurückgibt, verwende das Keyword TIMESERIES
.
FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today
Zeitliche Dimensionen
Das sind die zeitlichen Dimensionen, mit denen du deine Daten unterteilen kannst:
Operator | Beschreibung |
---|---|
second | Gruppieren nach Sekunde der Stunde. |
minute | Gruppieren nach Minute der Stunde. |
hour | Gruppieren nach Stunde des Kalendertags. |
day | Nach Kalendertag zusammenfassen. |
week | Nach Kalenderwoche zusammenfassen. |
month | Nach Kalendermonat zusammenfassen. |
quarter | Nach Kalenderquartal zusammenfassen. |
year | Nach Kalenderjahr zusammenfassen. |
hour_of_day | Nullbasierte Gruppierung nach 24 Stunden (0, 1, ..., 23). |
day_of_week | Nullbasierte Gruppierung nach Wochentag (0, 1, ..., 6). |
week_of_year | Nach Jahreswoche gruppieren (1, 2, ..., 52). |
month_of_year | Gruppierung nach Monat des Jahres (1, 2, …, 12). |
Du kannst das Keyword TIMESERIES
verwenden, wenn du die Gruppierung nach Zeitdimensionen gruppieren, Kennzahlen im Laufe der Zeit anzeigen und Daten in einer Abfrage auffüllen möchtest, um diese zu einem Timeseries-Diagramm zu machen, wenn Daten nicht vorhanden sind.
In diesem Beispiel werden die fehlenden Verkaufsdaten der letzten 15 Tage aufgefüllt:
FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d
TIMESERIES und die Reihenfolge der Spalten
Je nachdem, ob TIMESERIES
angegeben wird und entweder in den Werten GROUP BY
oder SHOW
vorhanden ist, kann sich die Reihenfolge der Spalten ändern.
TIMESERIES | SHOW | GROUP BY | Ergebnis |
---|---|---|---|
Gegeben | Nicht vorhanden | Nicht vorhanden |
TIMESERIES ist die erste Dimension. |
Gegeben | Nicht vorhanden | Vorhanden | Die Position der Zeitdimensionen wird durch ihre Position in GROUP BY bestimmt. |
Gegeben | Vorhanden | Vorhanden | Die Position der Zeitdimensionen wird durch ihre Position in SHOW bestimmt. |
Nicht gegeben | Nicht vorhanden | Vorhanden | Die Position der Zeitdimensionen wird durch ihre Position in GROUP BY bestimmt. Die Daten sind nicht aufgefüllt. |
Nicht gegeben | Vorhanden | Vorhanden | Die Position der Zeitdimensionen wird durch ihre Position in SHOW bestimmt. Die Daten sind nicht aufgefüllt. |
Nicht gegeben | Vorhanden | Nicht vorhanden | Triggert einen Syntaxfehler, da SHOW nur auf in GROUP BY vorhandene Dimensionen verweisen kann. |
Ähnlich wie WHERE
kannst du das Keyword HAVING
verwenden, um die Ergebnisse einer Abfrage zu filtern, nachdem sie gruppiert wurden. Der Filter kann eine Bedingung haben, aber die Bedingung kann sowohl von Vergleichsoperatoren (z. B. größer als >
) als auch von logischen Operatoren (z. B. AND
oder NOT
) geändert werden. Im Gegensatz zum Keyword WHERE
kann HAVING
auf Aliase, zusammengefasste Funktionen und Gruppierungsspalten verweisen.
HAVING
erfordert, dass deine Abfrage GROUP BY
oder TIMESERIES
enthält, da HAVING
die Ergebnisse einer Abfrage filtert, nachdem sie nach GROUP BY
oder TIMESERIES
gruppiert wurden.
In diesem Beispiel filterst du den Gesamtumsatz für jedes Produkt, das einen Gesamtumsatz über 1000 und weniger als 5000 hat:
FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000
WITH
Das Keyword WITH
ändert das Verhalten bestimmter anderer ShopifyQL-Keywords. Es gibt 3 verfügbare Modifikationen:
TOTALS
: Bietet eine Top-Level-Zusammenfassung der Kennzahlen, bevor sie in einer beliebigen Dimension aufgeschlüsselt werden.GROUP_TOTALS
: Gibt eine Summe für alle Untergruppen an, wenn es eine „group by aggregation“ gibt.PERCENT_CHANGE
: Fügt jeder Vergleichsspalte inCOMPARE TO
eine Prozentänderungskennzahl hinzu. Wenn dieser Modifikator vorhanden ist, wird für jede Vergleichskennzahlspalte eine neue Spalte hinzugefügt, die die Prozentänderung enthält.
TOTALS
Der Modifikator TOTALS
bietet eine Top-Level-Zusammenfassung der Kennzahlen, bevor sie in einer anderen Dimension aufgeschlüsselt werden. Wenn du WITH TOTALS
verwendest, gibt die Abfrage die Summen als zusätzliche Spalten im Ergebnissatz mit dem Namen der Kennzahl und „totals“ als Teil des Spaltennamens aus. Jede Zeile enthält alle anwendbaren Gesamtsummen.
Diese Abfrage zeigt beispielsweise die Summen des Gesamtumsatzes an:
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
Diese Abfrage gibt möglicherweise einen ähnlichen Bericht zurück:
Tag | Bruttoumsatz | Nettoumsatz | Gesamtumsatz |
---|---|---|---|
Übersicht | 6 | 15 | 24 |
2024-01-01 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
2024-01-03 | 3 | 6 | 9 |
Der Modifikator GROUP_TOTALS
bietet eine Summe für alle Untergruppen, wenn ein „group by aggregation“ vorhanden ist. Wenn du WITH GROUP_TOTALS
verwendest, gibt die Abfrage die Summen als zusätzliche Spalten im Ergebnissatz mit dem Namen der Kennzahl, den Gesamtsummen der Dimensionen und „totals“ als Teil des Spaltennamens aus. Jede Zeile enthält alle anwendbaren Gesamtsummen.
Diese Abfrage zeigt beispielsweise eine Summe des Gesamtumsatzes nach Land der Rechnungsadresse an:
FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS
Diese Abfrage gibt möglicherweise einen ähnlichen Bericht zurück:
Land | Kunden-ID | Gesamtumsatz |
---|---|---|
Übersicht (USA und Kanada) | – | 1 |
US-Gruppe gesamt | – | 0 |
US | 1 | 1 |
US | null | -1 |
Kanada-Gruppe gesamt | – | 1 |
Kanada | 1 | 1 |
Der Modifikator PERCENT_CHANGE
fügt jeder Vergleichsspalte eine prozentuale Änderungskennzahl hinzu, wenn du COMPARE TO
verwendest. Wenn du WITH PERCENT_CHANGE
verwendest, gibt die Abfrage die prozentuale Änderung für jede Vergleichskennzahl als zusätzliche Spalten im Ergebnissatz mit dem Namen der Kennzahl und „percent change“ als Teil des Spaltennamens aus.
Die verwendete Formel für die Berechnung der prozentualen Änderung lautet: (base_column - comparison_column) * 100 / abs(comparison_column)
Diese Abfrage verwendet beispielsweise SINCE
und COMPARE TO
, um den Nettoumsatz pro Tag im Vormonat mit dem gleichen Monat im Vorjahr zu vergleichen, mit einer Spalte für Prozentänderung:
FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Die Spalten im resultierenden Bericht enthalten Tag, Nettoumsatz, Vergleichstag, Nettoumsatz im Vergleich und Nettoumsatz in Prozent.
SINCE und UNTIL
Wenn du deine Abfrage nach einem Datum oder einem bestimmten Zeitraum filtern möchtest, kannst du die Keywords SINCE
und UNTIL
und ihre zugehörigen Parameter verwenden. Diese Keywords sind eindeutig, da sie nur Zeiträume filtern. Wenn du SINCE
verwendest und UNTIL
nicht definierst, wird das Ende deines Zeitraumes standardmäßig auf today
gesetzt.
Dies ist ein Beispiel für eine Abfrage bis gestern, die den Nettoumsatz in Kanada der letzten 12 Monate zurückgibt:
FROM sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
Offset-Operatoren
Du kannst nach bestimmten Daten oder nach Datums- und Zeit-Offsets filtern. Die ShopifyQL-Offset-Operatoren sind:
Offset-Operatoren | Beschreibung |
---|---|
-{#}s | Anzahl der Sekunden vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}min | Anzahl der Minuten vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}h | Anzahl der Stunden vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}d | Anzahl der Tage vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}w | Anzahl der Wochen vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}m | Anzahl der Monate vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}q | Anzahl der Quartale vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
-{#}y | Anzahl der Jahre vor dem Datum und der Uhrzeit, zu der die Abfrage ausgeführt wird. |
yyyy-MM-dd | Ein bestimmtes Datum. |
yyyy-MM-ddThh:mm:ss | Ein bestimmtes Datum und eine bestimmte Uhrzeit. |
Du kannst die folgenden Funktionen in Kombination mit beliebigen Zeitraum-Operatoren (mit Ausnahme bestimmtes Datum) in den Aussagen SINCE
und UNTIL
verwenden. Die Funktion „startOf...
“ verkürzt auf den Anfang der zugehörigen Zeiteinheit (Minute, Stunde, Tag, Woche, Monat, Quartal und Jahr), wenn sie mit SINCE
verwendet wird. Die Funktion „endOf...
“ verkürzt am Ende der zugehörigen Zeiteinheit, wenn sie mit UNTIL
verwendet wird.
Datumsfunktionseinheiten und Operator-Einheiten müssen übereinstimmen, um ein gültiges Ergebnis zurückgeben zu können. Beispielsweise ist startOfMonth(-1m)
korrekt, startOfMonth(-1d)
jedoch nicht.
Datumsfunktion | Beschreibung |
---|---|
now | Datum und Uhrzeit der Ausführung der Abfrage. |
startOfMinute(-{#}min) | Verkürzt den Datumsbereich-Operator auf den Beginn der Zielminute. |
endOfMinute(-{#}min) | Verkürzt den Datumsbereich-Operator auf das Ende der Zielminute. |
startOfHour(-{#}h) | Verkürzt den Datumsbereich-Operator auf den Beginn der Zielstunde. |
endOfHour(-{#}h) | Verkürzt den Datumsbereich-Operator auf das Ende der Zielstunde. |
startOfDay(-{#}d) | Verkürzt den Datumsbereich-Operator auf den Beginn des Zieltags. |
endOfDay(-{#}d) | Verkürzt den Datumsbereich-Operator auf das Ende des Zieltags. | startOfWeek(-{#}w) | Verkürzt den Datumsbereich-Operator auf den Beginn der Zielwoche. |
Wenn heute zum Beispiel der 8. November 2022 ist, kannst du die folgende Abfrage verwenden, um den Bruttoumsatz vom 1. Januar 2020 bis zum 31. Oktober 2022 auszugeben:
FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)
DURING
Das Keyword DURING
vereinfacht das Filtern nach Daten für Zeiträume und ersetzt die Nutzung von SINCE
und UNTIL
. Du kannst das Keyword DURING
verwenden, um die Abfrageergebnisse für einen bestimmten Zeitraum zu filtern, z. B. für ein Kalenderjahr oder einen bestimmten Monat. Du kannst es auch für Datumsbereiche verwenden, die jedes Jahr unterschiedliche Daten haben, z. B. Black Friday Cyber Monday. Zum Beispiel:
FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021
Benannte Datumsbereichsoperatoren
DURING
akzeptiert die folgenden benannten Operatoren für Zeiträume:
Benannte Datumsbereichsoperatoren | Beschreibung |
---|---|
today | Das Datum, an dem die Abfrage ausgeführt wird |
yesterday | Der vorherige 24-Stunden-Zeitraum bis zum Zeitpunkt, an dem die Abfrage ausgeführt wurde |
this_week | Die aktuelle Kalenderwoche |
this_month | Der aktuelle Kalendermonat |
this_quarter | Das aktuelle Kalenderquartal |
this_year | Das aktuelle Kalenderjahr |
last_week | Die vorherige Kalenderwoche |
last_month | Der vorherige Kalendermonat |
last_quarter | Das vorherige Kalenderquartal |
last_year | Das vorherige Kalenderjahr |
bfcmYYYY | Black Friday Cyber Monday für das angegebene Jahr. Zum Beispiel zeigt bfcm2022 Ergebnisse für den Zeitraum vom 25. bis 28. November 2022 an. |
COMPARE TO
Mit dem Keyword COMPARE TO
kannst du Daten über den Datumsbereich in SINCE
und UNTIL
oder DURING
sowie den in COMPARE TO
vergleichen.
Du kannst das Keyword COMPARE TO
mit den folgenden Arten von Parametern verwenden:
Absolute Daten, wie z. B.
2023-01-01
: Enthält die Kennzahlen für den angegebenen Zeitraum und die Vergleichskennzahlen für den gleichen Zeitraum am absolutem Datum.Benannte Daten wie z. B.
last_week
: Enthält die Kennzahlen für den angegebenen Zeitraum und die Vergleichskennzahlen für den gleichen Zeitraum am benannten Datum. - Der vonCOMPARE TO
verwendete Operator muss nicht die gleiche Länge haben wie der vonDURING
. Wenn keinUNTIL
-Wert angegeben wird, berechnet er den Zeitraum, der dem inDURING
angegebenen Wert entspricht.DURING this_week COMPARE TO last_month
vergleicht beispielsweise Daten dieser Woche mit einem einwöchigen Zeitraum, der zu Beginn des letzten Monats beginnt.Offset-Daten wie z. B.
-3q
: Enthält die Kennzahlen für den angegebenen Zeitraum und die Vergleichskennzahlen für den gleichen Zeitraum am relativen Datum.Mehrere Datumsvergleiche, wie z. B.
-1y, -2y
: Vergleiche deine Daten aus einem bestimmten Datumsbereich mit mehreren anderen Datumsbereichen. Dies kann nützlich sein, wenn du Änderungen über mehrere Zeiträume hinweg verfolgen möchtest.Wenn du eine Datumsdimension in einer Abfrage mit
COMPARE TO
verwendest, musst duTIMESERIES
verwenden und nichtGROUP BY
.
Das folgende Beispiel vergleicht den Nettoumsatz im Vormonat mit dem gleichen Monat des Vorjahres:
FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Relative Datumsbereich-Operatoren
Relative Operatoren geben die gleiche Zeitdauer zurück wie der Basisdatumsbereich, der um den angegebenen Zeitraum zurück verschoben wird. Zusätzlich zu den benannten Datumsbereich-Operatoren akzeptiert COMPARE TO
die folgenden relativen Operatoren:
Relativer Datumsbereich-Operator | Beschreibung |
---|---|
previous_period | Ein Zeitraum vor dem Basisdatumsbereich. |
previous_year | Ein Jahr vor dem Basisdatumsbereich. |
previous_quarter | Ein Quartal vor dem Basisdatumsbereich. |
previous_month | Ein Monat vor dem Basisdatumsbereich. |
previous_week | Eine Woche vor dem Basisdatumsbereich. |
previous_day | Ein Tag vor dem Basisdatumsbereich. |
previous_hour | Eine Stunde vor dem Basisdatumsbereich. |
previous_minute | Eine Minute vor dem Basisdatumsbereich. |
previous_second | Eine Sekunde vor dem Basisdatumsbereich. |
Mit dem Keyword ORDER BY
und seinen Parametern kannst du festlegen, wie die von deiner Abfrage herausgegebenen Daten sortiert werden sollen: ASC
für eine aufsteigende Reihenfolge und DESC
für eine absteigende Reihenfolge.
Du kannst im Keyword ORDER BY
beliebige Kennzahlen oder Dimensionen festlegen, die Teil deiner Abfrage sein sollen, einschließlich mehrerer Felder.
Diese Abfrage gibt beispielsweise den Nettoumsatz für alle Produkte und Varianten im letzten Jahr aus. Die Ergebnisse werden zuerst in alphabetischer Reihenfolge nach Produkttitel und dann in umgekehrter alphabetischer Reihenfolge nach Produkttyp sortiert:
FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC
Die Reihenfolge, in der du deine Kennzahlen und Dimension angibst, spielt eine Rolle. Wenn du mehrere Werte für ORDER BY
angibst, wird die Sortierung auf jede Kennzahl oder Dimension in der angegebenen Reihenfolge angewendet.
TIMESERIES und die Reihenfolge der Spalten
Je nachdem, ob die Abfrage TIMESERIES
und ORDER BY
enthält, kann sich die Reihenfolge der Spalten ändern.
TIMESERIES | ORDER BY | Ergebnis |
---|---|---|
Vorhanden | Nicht vorhanden | Die Ergebnisse werden nach TIMESERIES -Dimension angeordnet. |
Vorhanden | Vorhanden | Die Ergebnisse werden nach TIMESERIES -Dimension angeordnet und dann nach ORDER BY -Dimension. |
Nicht vorhanden | Vorhanden | Die Ergebnisse werden nach ORDER BY -Dimension angeordnet. |
Nicht vorhanden | Nicht vorhanden | Die Ergebnisse werden nach der ersten SHOW -Spalte angeordnet. |
Mit dem Keyword LIMIT
kannst du eine maximale Anzahl von Zeilen angeben, die die Abfrage zurückgibt. Dies ist nützlich, wenn du einfach verstehen möchtest, wie die Daten in jeder Spalte angezeigt werden, oder für größere Berichte, bei denen die Rückgabe von Werten länger dauern kann. Du kannst LIMIT
mit ORDER BY
kombinieren, um Listen von oben nach unten zu erstellen.
Wenn du keinen LIMIT
-Wert angibst, wird die Anfrage standardmäßig auf 1000 Zeilen festgelegt.
Du kannst auch einen optionalen Parameter { OFFSET # }
verwenden, um eine bestimmte Anzahl von Zeilen zu überspringen, bevor du mit der Ausgabe von Zeilendaten beginnst. Der resultierende Satz wurde ähnlich formatiert wie: LIMIT 15 { OFFSET 5 }
.
In diesem Beispiel werden LIMIT
und ORDER BY
verwendet, um eine Liste der 10 bestverkauften Produkte der letzten drei Monate zu erstellen:
FROM sales
SHOW gross_sales as total_gross_sales
GROUP BY product_title
SINCE -3m
UNTIL today
ORDER BY total_gross_sales DESC
LIMIT 10
VISUALIZE und TYPE
Mit dem Keyword VISUALIZE
kannst du eine ShopifyQL-Abfrage schreiben, in der Daten in einer grafischen Visualisierung angezeigt werden. Zu den unterstützten Visualisierungen gehören die folgenden Werte:
bar
stacked_bar
stacked_horizontal_bar
line
simple_bar
stacked_area
single_metric
donut
list
list_with_dimension_values
horizontal_bar
cohort
single_stacked_bar
funnel
grouped_bar
horizontal_grouped_bar
table
grid
Das Keyword TYPE
ist optional und muss von einer einzigen Art von Visualisierung begleitet werden. Wenn TYPE
nicht in deiner Abfrage enthalten ist, entscheidet ShopifyQL automatisch das beste Ergebnis, das zu deiner Abfrage passt. Wenn deine Abfrage nicht als geschrieben visualisiert werden kann, gibt ShopifyQL Tabulardaten aus.
VISUALIZE
akzeptiert auch ein optionales LIMIT
-Keyword, wenn der Parameter die begrenzte Anzahl von Datenpunkten ist, die gerendert werden soll.
Zum Beispiel kannst du deine Umsatzentwicklung im letzten Jahr nach Monat mit einer Trendlinie visualisieren. Diese Abfrage gibt ein Zeitdiagramm zurück, das den Bruttoumsatz nach Monat im letzten Jahr widerspiegelt. Der Bruttoumsatz wird als einzelne Linie dargestellt, wobei die X-Achse für die Monate und die Y-Achse für den Bruttoumsatz steht:
FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line
AS
Das Keyword AS
ist ein optionales Keyword, mit dem du eine Spalte oder einen Ausdruck umbenennen kannst (oder mit dem du einen entsprechenden Alias angeben kannst).
AS
akzeptiert nur einen einzigen Parameter. Wenn der Alias ein Leerzeichen im Namen hat, musst du den Alias in doppelte Anführungszeichen (") setzen.
FROM sales
SHOW total_sales AS "My Total Sales"
Andere ShopifyQL-Operatoren
ShopifyQL enthält die folgenden zusätzlichen Operatoren:
- Mathematische Operatoren, wie
+
oder/
- Implizierte Verbindungen
- Teilstring- und Array-Matching, wie z. B
STARTS WITH
undCONTAINS
- Kommentare
Mathematische Operatoren
ShopifyQL ermöglicht Rechenoperationen mit den Kennzahlen in deinen Daten. Die folgenden mathematischen Operatoren stehen zur Verfügung:
Mathematischer Operator | Beschreibung |
---|---|
+ | Addition zweier Zahlen. |
– | Subtraktion zweier Zahlen. |
* | Multiplikation zweier Zahlen. |
/ | Division zweier Zahlen. |
Diese Abfrage berechnet beispielsweise den Bestellwert für jede Region im letzten Jahr. Wenn du mathematische Operatoren mit Metriken verwendest, kannst du das KeywordAS
verwenden, um der neuen Metrik einen neuen Namen zuzuweisen. Bitte beachte, dass bei der Verwendung mathematischer Ausdrücke Einschränkungen bestehen.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Implizierte Verbindungen
Durch eine Verknüpfung kannst du Messdaten aus unterschiedlichen Domänen gemeinsam und nebeneinander anzeigen. Verknüpfungen werden in ShopifyQL implizit und intelligent durchgeführt.
ShopifyQL verfügt über die folgenden Verknüpfungsfunktionen:
- ShopifyQL lässt Dimensionsfeldverknüpfungen zu, wenn die Abfrage eine einzelne
FROM
-Tabelle enthält. - Automatische Verknüpfung links für Dimensionsfelder.
- ShopifyQL ermöglicht Multi-Fact-Verknüpfungen (wenn die Abfragen mehrere
FROM
-Tabellen enthalten). - Automatischer vollständige Verknüpfung bei Multi-Fact-Verknüpfungen, der eine beliebige Anzahl von Tabellen oder Schemata unterstützt und nach Dimensionen gruppiert ist.
- Metriken in Multi-Fact-Verknüpfungen können Mathematik verwenden.
Shopify QL hat die folgenden Verknüpfungsbeschränkungen:
- Das Verknüpfungsfeld muss in allen verbundenen Schemata den gleichen Namen haben.
- Das Verknüpfungsfeld muss in
GROUP BY
sein. - Im Verknüpfungsfeld kann keine Mathematik verwendet werden.
FROM
ist erforderlich, damit Multi-Fact-Verknüpfungen funktionieren.- Bei einer Multi-Fact-Verknüpfung muss jede
GROUP BY
in allen Schemata enthalten sein und wird als ein zu verknüpfendes Feld betrachtet.
Diese Abfrage verwendet beispielsweise eine Multi-Fact-Verknüpfung:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Teilweiser String- und Array-Abgleich
Für die teilweise Zeichenfolgen- und Arrayübereinstimmung kannst du die folgenden Operatoren verwenden:
Operator | Beschreibung |
---|---|
STARTS WITH | Gibt alle Zeilen zurück, bei denen eine Spalte mit einem Präfix beginnt. |
ENDS WITH | Gibt alle Zeilen zurück, bei denen eine Spalte mit einem Suffix endet. |
CONTAINS | Gibt alle Zeilen zurück, bei denen eine Spalte einen Teil einer Zeichenfolge oder ein Element in einem Array enthält. |
Beispiele für die teilweise Zeichenfolgenübereinstimmung mithilfe von Operatoren sind die folgenden Abfragen:
FROM sales
SHOW product_title
WHERE product_title STARTS WITH 'Summer'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title ENDS WITH 'kit'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title CONTAINS 'Beef'
GROUP BY product_title
Mit dem Operator CONTAINS
können Elemente in Arrays abgeglichen werden, darunter Ganzzahlen, Zeichenfolgen und Dezimalzahlen. Bei dieser Übereinstimmung wird die Groß-/Kleinschreibung nicht beachtet. Einige Beispiele für Array-Matching mit CONTAINS
umfassen die folgenden Abfragen:
FROM sales
SHOW orders
WHERE products_bought_together_ids CONTAINS '101'
FROM customers
SHOW total_number_of_orders
WHERE customer_cities CONTAINS 'seattle'
FROM sales
SHOW orders
WHERE variants_bought_together_variant_prices CONTAINS '10.2'
Kommentare
Du kannst Kommentare verwenden, um Abschnitte mit ShopifyQL-Anweisungen zu erklären oder um die Ausführung einer ShopifyQL-Anweisung zu verhindern. Jeder Text innerhalb eines Kommentars wird während der Ausführung ignoriert.
Kommentare mit einer einzelnen Zeile beginnen mit --
und enden am Ende der Zeile.
Kommentare mit mehreren Zeilen beginnen mit /*
und enden mit */
.
FROM sales
SHOW average_order_value, gross_sales
-- the line below has been commented out and won't run
-- GROUP BY billing_region
WHERE billing_country = 'United States'
/*
this line and the two lines below it have been commented out and won't run
SINCE 2021-01-01
UNTIL 2021-12-31
*/