De ShopifyQL-query-editor gebruiken
Je kunt ShopifyQL gebruiken met de nieuwe Shopify Analytics om de database van je eigen bedrijf te verkennen en de gegevens op te halen die je een diepgaander inzicht geven in je bedrijf.
ShopifyQL of Shopify Query Language is de querytaal van Shopify die ontwikkeld is voor handel. Querytalen worden gebruikt om gegevens uit databases op te vragen en op te halen. De gegevens van je winkel worden opgeslagen in databasetabellen, onderverdeeld in gedefinieerde kolommen en rijen. In kolommen wordt het type gegevens, zoals verkopen, aangegeven dat ze bevatten. Rijen geven de werkelijke waarde van het gegevenstype aan, zoals 2.450 USD aan verkopen.
Om je gegevens in een zinvolle indeling op te halen, moet een query worden ingediend bij de database. Een query is een vraag die specifieke gegevens als antwoord opvraagt, gemaakt van trefwoorden en de bijbehorende parameters. De combinatie van verschillende trefwoorden met specifieke parameters vormt je zoekopdracht. Nadat je je zoekopdracht hebt gevormd, kun je deze uitvoeren en een rapport ontvangen.
Op deze pagina
Termenlijst
Term | Definitie |
---|---|
Afmetingen | Een attribuut dat gegevens segmenteert, zodat deze duidelijker kunnen worden gesorteerd en gepresenteerd. Veelvoorkomende voorbeelden van dimensies zijn tijd, producten en plaatsen. Afmetingen worden gebruikt als parameters in ShopifyQL. |
Trefwoord | ShopifyQL-syntaxis die fungeert als een opdracht om je query te sturen. |
Statistiek | Een afmeting van gegevens. Veelvoorkomende voorbeelden van statistieken zijn de totale verkoop, het aantal bestellingen en de brutowinst. |
Parameter | ShopifyQL-syntaxis die de database-elementen of -gegevens identificeert die in je zoekopdracht moeten worden opgenomen. |
Operator | Een gereserveerd woord of teken dat wordt gebruikt als onderdeel van een query. Voorbeelden zijn STARTS WITH , >= , of last_week . |
ShopifyQL-syntaxis
Je moet aan de volgende voorwaarden voldoen bij het maken van een geldige rapportquery met ShopifyQL:
- Je kunt een volledige query op één regel of op afzonderlijke regels plaatsen.
- Je moet ten minste de
FROM
enSHOW
trefwoorden opnemen, met de juiste parameters. Alle andere trefwoorden en parameters zijn optioneel. - Alle trefwoorden in een query moeten in de volgende volgorde zijn opgenomen:
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
TIMESERIES
-
HAVING
-
SINCE
&UNTIL
, ofDURING
-
COMPARE TO
& optioneelUNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
&TYPE
-
Dit is een voorbeeld van ShopifyQL dat als een query is uitgeschreven met de juiste syntaxis. De trefwoorden zijn vetgedrukt, de bijbehorende parameters staan erbij met generieke tijdelijke aanduidingen en optionele parameters staan tussen haakjes:
ShopifyQL-trefwoorden
ShopifyQL-query's kunnen variëren van basisvragen, voor hoogwaardige gegevensinzichten, tot uitgebreide, voor gedetailleerde inzichten. Elk trefwoord heeft een specifieke functie die je zoekopdracht opbouwt.
Trefwoord | Beschrijving |
---|---|
FROM | Geeft aan uit welke datasettabel gegevens moeten worden geselecteerd. |
SHOW | Selecteert de kolommen die je uit de datasettabel wilt extraheren. |
WHERE | Definieert de voorwaarde of voorwaarden waar rijen aan moeten voldoen om te worden geselecteerd. |
GROUP BY | Groepeert de opgehaalde gegevens op een dimensie of op tijdsdimensies. |
WITH | Wijzigt het gedrag van bepaalde ShopifyQL-trefwoorden. |
TIMESERIES | Onderscheidt groeperen op tijdafmetingen en vult datums in een query aan. |
HAVING | Filtert de resultaten van een query nadat deze is gegroepeerd. |
SINCE | Toont gegevens sinds een specifieke periode in het verleden. Vaak gekoppeld aan UNTIL . |
UNTIL | Toont gegevens tot een bepaalde periode in het verleden. Vaak gekoppeld aan SINCE of COMPARE TO . |
DURING | Toont gegevens gedurende een gespecificeerde periode in het verleden. |
COMPARE TO | Toont gegevens voor vergelijking met een specifieke periode in het verleden. |
ORDER BY | Specificeert op welke kolom de gegevens moeten worden gesorteerd. |
LIMIT | Beperkt het aantal rijen gegevens dat wordt weergegeven. |
VISUALIZE | Geeft je gegevens weer in een regel of balk. Je kunt je voorkeursweergave aangeven met TYPE . |
AS | Een optioneel trefwoord dat een kolom hernoemt naar een naam van jouw keuze. |
FROM en SHOW
Voor het maken van de eenvoudigste ShopifyQL-query zijn slechts twee trefwoorden nodig: FROM
en SHOW
, geschreven in die volgorde. FROM
, gevolgd door een of meerdere tabelnaamparameters, geeft aan welke tabel je wil opvragen. SHOW
, gevolgd door een onbepaald aantal kolomnaamparameters, geeft de kolommen op die je wil selecteren.
SHOW
kan worden gebruikt om de volgorde op te geven waarop statistieken en afmetingen worden terruggegeven in het rapport.
Je kunt bijvoorbeeld de som van de totale verkoop terugzien door deze query te schrijven:
WHERE
Met trefwoord WHERE
kun je een dimensiefilter toepassen op een volledige ShopifyQL-query. Het filter kan worden gewijzigd door zowel vergelijkingsoperators (zoals meer dan >
), logische operators (zoals AND
of NOT
) en gedeeltelijke tekenreeks- en matrix-matching (zoals STARTS WITH
en CONTAINS
).
WHERE
voorwaarden moeten aan de volgende voorwaarden voldoen:
- Waarden moeten worden omringd door enkele aanhalingstekens ('), niet door dubbele aanhalingstekens (").
- Voorwaarden mogen geen rekenkundige tekens bevatten.
- Voorwaarden kunnen alleen verwijzen naar een dimensie, niet naar een statistiek.
Als je bijvoorbeeld de totale verkoop wil inzien, maar dan gefilterd op basis van het land van facturering, is je query:
Zoals in het bovenstaande voorbeeld, kun je het resultaat dat is ingesteld met de WHERE
-parameter filteren, zelfs wanneer die parameter niet is opgenomen in het SHOW
trefwoord. In dit geval wordt de totale verkoop alleen gefilterd op bestellingen uit Canada, hoewel billing_country
niet is opgenomen in de set resultaten.
Vergelijkingsoperators
Het trefwoord WHERE
maakt gebruik van vergelijkingsoperators om gegevens te filteren. In het bovenstaande voorbeeld is =
gebruikt om op te geven dat de query op een specifieke waarde wordt gefilterd, maar er staan andere operators tot je beschikking:
Vergelijkingsoperator | Beschrijving |
---|---|
= | gelijk aan |
!= | niet gelijk aan |
< | kleiner dan |
> | groter dan |
<= | kleiner dan of gelijk aan |
>= | groter dan of gelijk aan |
Logistieke operators
Om je gegevens verder te filteren, kun je logische operators aan je zoekopdracht toevoegen. De logische operators van ShopifyQL zijn:
Logische operator | Beschrijving |
---|---|
AND | Filter om alle rijen aan te duiden die aan de door AND gescheiden voorwaarden voldoen. |
OR | Filter om alle rijen aan te duiden die aan een van de door OR gescheiden voorwaarden voldoen. |
NOT | Filter om alleen rijen aan te duiden die niet aan de voorwaarden voldoen, zoals rijen die de opgegeven waarde niet bevatten. |
Je kunt meerdere filters gebruiken met het trefwoord WHERE
door logische operators toe te voegen.
Als extra toevoeging aan de voorbeeldquery van een dataset: de query om een maandelijks overzicht te krijgen van de netto-omzet voor alle bestellingen met gedroogde perziken, een factuuradres in Canada en een toegepaste korting, is:
GROUP BY
Gebruik het trefwoord GROUP BY
als je een statistiek wil segmenteren op een dimensie, zoals groepsverkopen per regio. Je kunt het trefwoord GROUP BY
koppelen aan elke gewenste dimensieparameter.
Een query die de totale verkoop per land en regio voor factuur groepeert, wordt bijvoorbeeld geschreven als:
Dit is een ander voorbeeld van een query die een tijddimensie gebruikt om de totale verkoop per maand weer te geven:
De bovenstaande query levert geen resultaat op voor maanden waarin je geen omzet hebt. Gebruik het trefwoord TIMESERIES
als je een query wil die een volledige, ononderbroken periode als resultaat geeft.
Tijdsdimensies
Dit zijn de tijdsafmetingen die je kunt gebruiken om je gegevens te groeperen:
Operator | Beschrijving |
---|---|
second | Groeperen op seconde van uur. |
minute | Groeperen op minuut van uur. |
hour | Groeperen op uur van kalenderdag. |
day | Groeperen op kalenderdag. |
week | Groeperen op kalenderweek. |
month | Groeperen op kalendermaand. |
quarter | Groeperen op kalenderkwartaal. |
year | Groeperen op kalenderjaar. |
hour_of_day | Groeperen op 24 uur (1, 2, ..., 24). |
day_of_week | Groeperen op dag van de week (M, D, W, ..., Z). |
week_of_year | Groeperen op week van het jaar (1, 2, ..., 52). |
month_of_year | Groeperen per maand van het jaar (1, 2, ..., 12). |
TIMESERIES
Je kunt het trefwoord TIMESERIES
gebruiken wanneer je een groep wil onderscheiden op tijdsafmetingen, statistieken gedurende een tijdsbestek wil bekijken, of achteraf datums in een query wil invullen om een grafiek tijdreeksen zonder data te maken.
In dit voorbeeld, vul je achteraf de ontbrekende totale verkoopgegevens van de afgelopen 15 dagen in:
TIMESERIES en de volgorde van kolommen
Afhankelijk van de bekendheid en de aanwezigheid van de TIMESERIES
in de waarden GROUP BY
of SHOW
, kan de volgorde van kolommen veranderen.
TIMESERIES | SHOW | GROUP BY | Resultaat |
---|---|---|---|
Opgegeven | Niet aanwezig | Niet aanwezig | De TIMESERIES is de eerste dimensie. |
Opgegeven | Niet aanwezig | Aanwezig | Positie van tijdafmetingen wordt gedefinieerd door de positie in GROUP BY . |
Opgegeven | Aanwezig | Aanwezig | Positie van tijdafmetingen wordt gedefinieerd door de positie in SHOW . |
Niet opgegeven | Niet aanwezig | Aanwezig | Positie van tijdafmetingen wordt gedefinieerd door de positie in GROUP BY . Gegevens worden niet aangevuld. |
Niet opgegeven | Aanwezig | Aanwezig | Positie van tijdafmetingen wordt gedefinieerd door de positie in SHOW . Gegevens worden niet aangevuld. |
Niet opgegeven | Aanwezig | Niet aanwezig | Activeert een syntaxisfout omdat SHOW alleen kan verwijzen naar dimensies die aanwezig zijn in GROUP BY . |
HAVING
Net als WHERE
, kun je het trefwoord HAVING
gebruiken om de resultaten van een query te filteren nadat deze zijn gegroepeerd. De filter kan één voorwaarde hebben, maar de voorwaarde kan worden gewijzigd door zowel vergelijkingsoperators (zoals meer dan >
) als logische operators (zoals AND
of NOT
). In tegenstelling tot trefwoord WHERE
, kanHAVING
verwijzen naar aliassen, samengestelde functies en groeperende kolommen.
HAVING
vereist dat je zoekopdracht een GROUP BY
of TIMESERIES
bepaling bevat, omdat HAVING
de resultaten van een query filtert nadat ze zijn gegroepeerd op GROUP BY
of TIMESERIES
.
In dit voorbeeld filter je de totale verkoop voor elk product met een totale verkoop groter dan 1000 en minder dan 5000:
WITH
Het trefwoord WITH
wijzigt het gedrag van bepaalde andere ShopifyQL-trefwoorden. Er zijn 3 beschikbare aanpassingen:
-
TOTALS
: Biedt een overzicht op het hoogste niveau van statistieken voordat deze worden door enige dimensie worden opgesplitst. -
GROUP_TOTALS
: geeft een totaal voor alle subgroeperingen wanneer er een groep is op samentelling. -
PERCENT_CHANGE
: voegt een procentwijzigingsstatistiek toe aan elke vergelijkingskolom inCOMPARE TO
. Wanneer deze wijziger aanwezig is, wordt voor elke wijzigingsstatistiekkolom een nieuwe kolom toegevoegd, met de procentwijziging.
TOTALS
De wijziger TOTALS
biedt een overzicht op het hoogste niveau van statistieken voordat deze worden opgesplitst door een andere dimensie. Wanneer je WITH TOTALS
gebruikt, geeft de query de totalen weer in de resultatenset als extra kolommen met de statistieknaam en "totals" als onderdeel van de kolomnaam. Elke rij bevat alle toepasbare totalen.
Deze query geeft bijvoorbeeld de totalen van de totale verkoop weer:
Deze query kan een rapport leveren dat vergelijkbaar is met dit:
Dag | Bruto-omzet | Nettoverkoop | Totale verkoop | Bruto-omzet totalen | Netto-omzet totalen | Totale-omzet totalen |
---|---|---|---|---|---|---|
2024-01-01 | 1 | 4 | 7 | 6 | 15 | 24 |
2024-01-02 | 2 | 5 | 8 | 6 | 15 | 24 |
2024-01-03 | 3 | 6 | 9 | 6 | 15 | 24 |
GROUP_TOTALS
De wijziger GROUP_TOTALS
biedt een totaal voor alle subgroepen wanneer er een groep per samentelling is. Wanneer je WITH GROUP_TOTALS
gebruikt, geeft de query de totalen weer als extra kolommen in de resultatenset met de statistieknaam, dimensies die worden opgeteld en "totals" als onderdeel van de kolomnaam. Elke rij bevat alle toepasbare totalen.
Deze query geeft bijvoorbeeld het totaal van de totale verkoop per land van factuur weer:
Deze query kan een rapport leveren dat vergelijkbaar is met dit:
Land | Klant-ID | Totale verkoop | Totale-omzet landtotalen | Totale-omzet totalen |
---|---|---|---|---|
US | 1 | 1 | 0 | 1 |
US | null | -1 | 1 | 1 |
Canada | 1 | 1 | 1 | 1 |
PERCENT_CHANGE
De wijziger PERCENT_CHANGE
voegt een percentagewijzigingsstatistiek toe aan elke vergelijkingskolom wanneer je COMPARE TO
gebruikt. Wanneer je WITH PERCENT_CHANGE
gebruikt, geeft de query de procentuele wijziging voor elke vergelijkingsstatistiek weer als extra kolommen in de resultatenset met de statistieknaam en "percent change" als onderdeel van de kolmnaam.
De formule die wordt gebruikt voor het berekenen van wijzigingspercentage is: (base_column - comparison_column) * 100 / abs(comparison_column)
Deze query gebruikt bijvoorbeeld SINCE
en COMPARE TO
om de netto-omzet per dag van de vorige maand te vergelijken met dezelfde maand van het voorgaande jaar, met een kolom voor procentwijziging:
De kolommen in het resulterende rapport bevatten dag, netto-omzet, vergelijkingsdag, vergelijkingsnetto-omzet en procentwijziging netto-omzet.
SINCE en UNTIL
Als je je query wil filteren op een datum of bepaalde periode, kun je de trefwoorden SINCE
en UNTIL
en de bijbehorende parameters gebruiken. Deze trefwoorden zijn uniek omdat ze alleen tijdsperioden filteren. Als je SINCE
gebruikt en geen waarde voor UNTIL
definieert, wordt het einde van je tijdsbereik standaard ingesteld op today
.
Dit is bijvoorbeeld een query om de netto-omzet van de afgelopen 12 maanden in Canada te vinden, tot en met gisteren:
Compensatie-operators
Je kunt filteren op specifieke datums of op datum- en tijdcompensaties. De offset-operators van ShopifyQL zijn:
Offset-operator | Beschrijving |
---|---|
-{#}s | Aantal seconden sinds de datum en tijd dat de aanvraag is gedaan. |
-{#}min | Aantal minuten sinds de datum en tijd dat de aanvraag is gedaan. |
-{#}h | Aantal uren sinds de datum en tijd dat de aanvraag is gedaan. |
-{#}d | Aantal dagen sinds de datum en tijd dat de aanvraag is gedaan. |
-{#}w | Aantal weken sinds de datum en tijd dat de aanvraag is gedaan. |
-{#}m | Aantal maanden sinds de datum en tijd dat de aanvraag is gedaan. |
-{#}q | Aantal kwartalen geleden vanaf de datum en tijd waarop de query wordt uitgevoerd. |
-{#}y | Aantal jaren sinds de datum en tijd dat de aanvraag is gedaan. |
yyyy-MM-dd | Een specifieke datum. |
yyyy-MM-ddThh:mm:ss | Een specifieke datum en tijd. |
Datumfuncties
Je kunt in SINCE
en UNTIL
verklaringen de volgende functies gebruiken in combinatie met datumbereikoperators (met uitzondering van specifieke datums). De "startOf...
" functies kappen af op het begin van de bijbehorende tijdeenheid (minuut, uur, dag, week, maand, kwartaal en jaar) wanneer die worden gebruikt met SINCE
en de "endOf...
" functies kappen af op het eind van de bijbehorende tijdeenheid wanneer ze met UNTIL
worden gebruikt.
Datumfunctie-eenheden en operator-eenheden moeten overeenkomen om een geldig resultaat weer te kunnen geven. Zo klopt startOfMonth(-1m)
bijvoorbeeld, maar startOfMonth(-1d)
niet.
Datumfunctie | Beschrijving |
---|---|
now | De datum en tijd waarop de query wordt uitgevoerd. |
startOfMinute(-{#}min) | Kapt de operator van het datumbereik af aan het begin van de beoogde minuut. |
endOfMinute(-{#}min) | Kapt de datumbereik-operator af op het eind van de beoogde minuut. |
startOfHour(-{#}h) | Kapt de datumbereik-operator af op het begin van het beoogde uur. |
endOfHour(-{#}h) | Kapt de operator van het datumbereik af aan het einde van het beoogde uur. |
startOfDay(-{#}d) | Kapt de datumbereik-operator af op het begin van de beoogde dag. |
endOfDay(-{#}d) | Kapt de datumbereik-operator af op het eind van de beoogde dag. | startOfWeek(-{#}w) | Kapt de datumbereik-operator af op het begin van de beoogde week. |
endOfWeek(-{#}w) | Kapt de datumbereik-operator af op het eind van de beoogde week. |
startOfMonth(-{#}m) | Kapt de datumbereik-operator af op het begin van de beoogde maand. |
endOfMonth(-{#}m) | Kapt de datumbereik-operator af op het eind van de beoogde maand. |
startOfQuarter(-{#}q) | Kapt de datumbereik-operator af op het begin van het beoogde kwartaal. |
endOfQuarter(-{#}q) | Kapt de datumbereik-operator af op het eind van het beoogde kwartaal. |
startOfYear(-{#}y) | Kapt de datumbereik-operator af op het begin van het beoogde jaar. |
endOfYear(-{#}y) | Kapt de datumbereik-operator af op het eind van het beoogde jaar. |
Als het vandaag bijvoorbeeld 8 november 2022 is, kun je de volgende query gebruiken om de bruto-omzet van 1 januari 2020 tot 31 oktober 2022 in te zien:
DURING
Het trefwoord DURING
vereenvoudigt het filteren op datumbereik en vervangt het gebruik van SINCE
en UNTIL
. Je kunt het trefwoord DURING
gebruiken om de queryresultaten te filteren voor een bekende periode, zoals een kalenderjaar of specifieke maand, of voor een datumbereik dat elk jaar op een andere datum valt, zoals Black Friday en Cyber Monday. Bijvoorbeeld:
Genoemde datumbereikoperators
DURING
accepteert de volgende operatoren voor het benaamde datumbereik:
Operatoren voor het benaamde datumbereik | Beschrijving |
---|---|
today | De datum waarop de query wordt uitgevoerd. |
yesterday | De afgelopen 24 uur vanaf het moment dat de query werd uitgevoerd. |
this_week | De huidige kalenderweek. |
this_month | De huidige kalendermaand. |
this_quarter | Het huidige kalenderkwartaal. |
this_year | Het huidige kalenderjaar. |
last_week | De vorige kalenderweek. |
last_month | De vorige kalendermaand. |
last_quarter | Het vorige kalenderkwartaal. |
last_year | Het vorige kalenderjaar. |
bfcmYYYY | Het Black Friday Cyber Monday bereik voor het opgegeven jaar. bfcm2022 geeft bijvoorbeeld de resultaten voor 25-28 november 2022. |
COMPARE TO
Met het trefwoordCOMPARE TO
kun je gegevens vergelijken tussen de datumbereiken in SINCE
en UNTIL
of DURING
en inCOMPARE TO
.
Je kunt het trefwoordCOMPARE TO
met de volgende soorten parameters gebruiken:
- Absolute datums, zoals
2023-01-01
: hieronder vallen de statistieken voor de opgegeven periode en de vergelijkingsstatistieken voor diezelfde periode op de absolute datum. -
Benaamde data zoals
last_week
: hieronder vallen de statistieken voor de opgegeven periode en de vergelijkingsstatistieken voor diezelfde periode op de benaamde datum.- De operator die
COMPARE TO
gebruikt hoeft niet dezelfde tijdsduur te hebben als de operator dieDURING
gebruikt. Als er geenUNTIL
waarde wordt opgegeven, berekent het het tijdsbereik als gelijk aan de waarde die is opgegeven inDURING
.DURING this_week COMPARE TO last_month
vergelijkt bijvoorbeeld de gegevens van deze week met een periode van één week die begin vorige maand begint.
- De operator die
Offset data zoals
-3q
: hieronder vallen de statistieken voor de opgegeven periode en de vergelijkingsstatistieken voor diezelfde periode op de relatieve datum.Vergelijkingen van meerdere datums, zoals
-1y, -2y
: vergelijken je gegevens van een specifiek datumbereik met meerdere andere datumbereiken. Dit kan handig zijn wanneer je wijzigingen in verschillende periodes wil volgen.Als je een datumsafmeting gebruikt in een query met
COMPARE TO
, moet je erTIMESERIES
voor gebruiken in plaats vanGROUP BY
.
In het volgende voorbeeld wordt de netto-omzet in de vorige maand vergeleken met die in dezelfde maand van het voorgaande jaar:
Operator relatieve datumbereik
Relatieve operators geven dezelfde tijdsduur als het basisdatumbereik, teruggeschoven door de opgegeven periode. Naast de genoemde datumbereikoperators, worden bij COMPARE TO
de volgende relatieve operators geaccepteerd:
Operator met een relatief datumbereik | Beschrijving |
---|---|
previous_period | Eén periode voor het basisdatumbereik. |
previous_year | Eén jaar voor het basisdatumbereik. |
previous_quarter | Eén kwartaal voor het basisdatumbereik. |
previous_month | Eén maand voor het basisdatumbereik. |
previous_week | Eén week voor het basisdatumbereik. |
previous_day | Eén dag voor het basisdatumbereik. |
previous_hour | Eén uur voor het basisdatumbereik. |
previous_minute | Eén minuut voor het basisdatumbereik. |
previous_second | Eén seconde voor het basisdatumbereik. |
ORDER BY
Je kunt opgeven hoe je de gegevens wil sorteren die door je query worden opgehaald met behulp van het trefwoord ORDER BY
en de parameters ervan: ASC
voor oplopende volgorde en DESC
voor aflopende volgorde.
Je kunt elke statistiek of dimensie uit je query specificeren in het trefwoord ORDER BY
, inclusief meerdere velden.
Deze query geeft bijvoorbeeld de netto-omzet voor alle producten en varianten van het afgelopen jaar. De resultaten worden eerst in alfabetische volgorde gesorteerd op producttitel en vervolgens in omgekeerde alfabetische volgorde op producttype:
De volgorde waarin je de statistieken of dimensie schrijft, is belangrijk. Als je meerdere waarden opgeeft voor ORDER BY
, wordt de sortering toegepast op elke statistiek of dimensie in de opgegeven volgorde.
TIMESERIES en de volgorde van kolommen
De volgorde van de kolommen kan veranderen afhankelijk van of de query al dan niet een TIMESERIES
en ORDER BY
bevat.
TIMESERIES | ORDER BY | Resultaat |
---|---|---|
Aanwezig | Niet aanwezig | Resultaten worden geordend aan de hand van deTIMESERIES dimensie. |
Aanwezig | Aanwezig | Resultaten worden geordend aan de hand van deTIMESERIES tijdsafmeting en vervolgens deORDER BY dimensie. |
Niet aanwezig | Aanwezig | Resultaten worden geordend aan de hand van deORDER BY dimensie. |
Niet aanwezig | Niet aanwezig | De resultaten worden geordend aan de hand van de eerste SHOW kolom. |
LIMIT
Met het trefwoord LIMIT
kun je een maximaal aantal rijen opgeven voor het resultaat van de query. Dit is handig wanneer je wil begrijpen hoe de gegevens in elke kolom worden weergegeven, of voor grotere rapporten waarbij het langer kan duren voor zoekopdrachten waarden geven. Je kuntLIMIT
combineren met ORDER BY
om boven- en onderlijsten aan te maken.
Als je geen LIMIT
waarde opgeeft, geeft de query standaard een resultaat met 1000 rijen.
Je kunt ook een optionele { OFFSET # }
parameter gebruiken, waarbij het resultaat een bepaald aantal rijen overslaat voor het begint met het geven van rijgegevens. De format van de resulterende zin zou vergelijkbaar zijn met: LIMIT 15 { OFFSET 5 }
.
Dit voorbeeld gebruikt LIMIT
en ORDER BY
om een lijst te maken van producten die de voorgaande 3 maanden het best verkochten:
VISUALIZE en TYPE
Met het trefwoordVISUALIZE
kun je een ShopifyQL-query schrijven die gegevens in een grafische visualisatielaat zien. Onder de ondersteunde visualisaties vallen de volgende waarden:
-
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
Het trefwoord TYPE
is optioneel en moet worden vergezeld door één soort visualisatie. Als TYPE
niet in je zoekopdracht is opgenomen, kiest ShopifyQL automatisch de meest geschikte visualisatie voor je zoekopdracht. Als je query niet kan worden gevisualiseerd als geschreven, geeft ShopifyQL het resultaat in de vorm van tabelgegevens.
VISUALIZE
accepteert ook een optioneel LIMIT
-trefwoord waarbij de parameter het beperkte aantal gegevenspunten is dat moet worden weergegeven.
Je kunt bijvoorbeeld je verkooptrend van het afgelopen jaar per maand visualiseren met een trendlijn. Met deze query wordt een grafiek geretourneerd uit de tijdreeks die de bruto-omzet per maand van het afgelopen jaar weergeeft. De bruto-omzet wordt weergegeven door een enkele lijn, met de x-as als maand en de y-as als bruto-omzet:
AS
Het trefwoord AS
is een optioneel trefwoord waarmee je een kolom of de gegeven waarde van een samengestelde functie kunt hernoemen (of een alias kunt geven).
AS
accepteert slechts één parameter. Als de alias een spatie in de naam heeft, moet je de alias tussen dubbele aanhalingstekens (") zetten.
Andere functies en operators van ShopifyQL
ShopifyQL heeft de volgende aanvullende operators en functies:
-
Wiskundige operators zoals
+
of/
-
Functies zoals
round()
entrim()
- Impliciete verbindingen
-
Gedeeltelijke matching van tekenreeksen en matrixen zoals
STARTS WITH
enCONTAINS
- Reacties
Wiskundige operator
ShopifyQL maakt het mogelijk om gebruik te maken van metrische gegevens. Er zijn de volgende operators beschikbaar voor zelfoperators:
Wiskundige operator | Beschrijving |
---|---|
+ | Toevoeging van twee cijfers. |
- | Aftrekking van twee getallen. |
* | Vermenigvuldiging van twee cijfers. |
/ | Deling van twee cijfers. |
Deze query berekent bijvoorbeeld de bestelwaarde van elke regio in het voorgaande jaar. Wanneer je gebruikmaakt van operators met statistieken, kun je het trefwoord AS
gebruiken om een nieuwe naam toe te wijzen aan de nieuwe statistiek.
Functies
Met ShopifyQL-functies kun je kolommen verzamelen, of ze combineren om een nieuwe waarde te creëren. Dit is vergelijkbaar met draaitabellen in Microsoft Excel. De volgende functie-operators zijn beschikbaar in de huidige versie van ShopifyQL:
Functie-operator | Beschrijving |
---|---|
TRIM(column_name) | Verwijdert overbodige spaties aan het einde en het begin van een tekenreeks. |
ROUND(column_name, decimal_places) | Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
|
For example, this query uses the rounding function on the gross_sales
column, but omits the decimal_places
argument to round the value to the integer:
Implicit joins
A join allows you to view metrics from different domains together, side by side. Joins are done implicitly and intelligently in ShopifyQL.
ShopifyQL has the following join capabilities:
- ShopifyQL allows dimension field joins when there is a single
FROM
table in the query. - Automatic left join on dimension fields.
- ShopifyQL allows multi-fact joins (when there are multiple
FROM
tables in the queries). - Automatic full join on multi-fact joins, which support any number of tables or schemas and grouped by dimensions.
- Metrics in multi-fact joins can use functions and math.
Shopify QL has the following join restrictions:
- Join field must have the same name in all joined schemas.
- Join field must be in
GROUP BY
. - Join field can't use functions or math.
-
FROM
is necessary for multi-fact joins to work. - In a multi-fact join, every
GROUP BY
must be in all schemas and is considered a field on which to be joined.
For example, this query uses a multi-fact join:
Partial string and array matching
You can use the following operators for partial string and array matching:
Operator | Description |
---|---|
STARTS WITH | Return all rows where a column starts with a prefix. |
ENDS WITH | Return all rows where a column ends with a suffix. |
CONTAINS | Return all rows where a column contains a part of a string, or an element in an array. |
Some examples of partial string matching using operators include the following queries:
The CONTAINS
operator can be used to match elements within arrays, including integers, strings, and decimals. This matching isn't case-sensitive. Some examples of array matching using CONTAINS
include the following queries:
Comments
You can use comments to explain sections of ShopifyQL statements, or to prevent the execution of a ShopifyQL statement. Any text within a comment will be ignored during execution time.
Single line comments start with --
and end at the end of the line.
Multi-line comments start with /*
and end with */
.