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.

Termenlijst

Definities van ShopifyQL-termen, zoals dimensie, trefwoord en operator.
TermDefinitie
AfmetingenEen 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.
TrefwoordShopifyQL-syntaxis die fungeert als een opdracht om je query te sturen.
StatistiekEen afmeting van gegevens. Veelvoorkomende voorbeelden van statistieken zijn de totale verkoop, het aantal bestellingen en de brutowinst.
ParameterShopifyQL-syntaxis die de database-elementen of -gegevens identificeert die in je zoekopdracht moeten worden opgenomen.
OperatorEen 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 en SHOW 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:
    1. FROM
    2. SHOW
    3. WHERE
    4. GROUP BY
    5. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    7. HAVING
    8. SINCE & UNTIL, of DURING
    9. COMPARE TO & optioneel UNTIL
    10. ORDER BY
    11. LIMIT
    12. 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:

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-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.

Lijst met ShopifyQL-trefwoorden en hun beschrijvingen.
TrefwoordBeschrijving
FROMGeeft aan uit welke datasettabel gegevens moeten worden geselecteerd.
SHOWSelecteert de kolommen die je uit de datasettabel wilt extraheren.
WHEREDefinieert de voorwaarde of voorwaarden waar rijen aan moeten voldoen om te worden geselecteerd.
GROUP BYGroepeert de opgehaalde gegevens op een dimensie of op tijdsdimensies.
WITHWijzigt het gedrag van bepaalde ShopifyQL-trefwoorden.
TIMESERIESOnderscheidt groeperen op tijdafmetingen en vult datums in een query aan.
HAVINGFiltert de resultaten van een query nadat deze is gegroepeerd.
SINCEToont gegevens sinds een specifieke periode in het verleden. Vaak gekoppeld aan UNTIL.
UNTILToont gegevens tot een bepaalde periode in het verleden. Vaak gekoppeld aan SINCE of COMPARE TO.
DURINGToont gegevens gedurende een gespecificeerde periode in het verleden.
COMPARE TOToont gegevens voor vergelijking met een specifieke periode in het verleden.
ORDER BYSpecificeert op welke kolom de gegevens moeten worden gesorteerd.
LIMITBeperkt het aantal rijen gegevens dat wordt weergegeven.
VISUALIZEGeeft je gegevens weer in een regel of balk. Je kunt je voorkeursweergave aangeven met TYPE.
ASEen 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:

FROM sales
SHOW total_sales

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:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'

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:

Lijst met ShopifyQL-vergelijkingsoperators, zoals meer dan of gelijk aan.
VergelijkingsoperatorBeschrijving
=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:

Lijst met logische operators van ShopifyQL, zoals AND, OR, of NOT.
Logische operatorBeschrijving
ANDFilter om alle rijen aan te duiden die aan de door AND gescheiden voorwaarden voldoen.
ORFilter om alle rijen aan te duiden die aan een van de door OR gescheiden voorwaarden voldoen.
NOTFilter 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:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada' AND product_title='Dried Peaches' AND discounts > 0

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:

FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region

Dit is een ander voorbeeld van een query die een tijddimensie gebruikt om de totale verkoop per maand weer te geven:

FROM sales
SHOW total_sales
GROUP BY month

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.

FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today

Tijdsdimensies

Dit zijn de tijdsafmetingen die je kunt gebruiken om je gegevens te groeperen:

Lijst met ShopifyQL-tijdafmetingen, zoals de seconde, minuut, of weekdag.
OperatorBeschrijving
secondGroeperen op seconde van uur.
minuteGroeperen op minuut van uur.
hourGroeperen op uur van kalenderdag.
dayGroeperen op kalenderdag.
weekGroeperen op kalenderweek.
monthGroeperen op kalendermaand.
quarterGroeperen op kalenderkwartaal.
yearGroeperen op kalenderjaar.
hour_of_dayGroeperen op 24 uur (1, 2, ..., 24).
day_of_weekGroeperen op dag van de week (M, D, W, ..., Z).
week_of_yearGroeperen op week van het jaar (1, 2, ..., 52).
month_of_yearGroeperen 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:

FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d

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.

Voorbeelden van TIMESERIES en hoe de volgorde van kolommen wordt weergegeven met GROUP BY of SHOW in ShopifyQL.
TIMESERIESSHOWGROUP BYResultaat
OpgegevenNiet aanwezigNiet aanwezigDe TIMESERIES is de eerste dimensie.
OpgegevenNiet aanwezigAanwezigPositie van tijdafmetingen wordt gedefinieerd door de positie in GROUP BY.
OpgegevenAanwezigAanwezigPositie van tijdafmetingen wordt gedefinieerd door de positie in SHOW.
Niet opgegevenNiet aanwezigAanwezigPositie van tijdafmetingen wordt gedefinieerd door de positie in GROUP BY. Gegevens worden niet aangevuld.
Niet opgegevenAanwezigAanwezigPositie van tijdafmetingen wordt gedefinieerd door de positie in SHOW. Gegevens worden niet aangevuld.
Niet opgegevenAanwezigNiet aanwezigActiveert 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:

FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 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 in COMPARE 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:

FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS

Deze query kan een rapport leveren dat vergelijkbaar is met dit:

Voorbeeld van ShopifyQL omzettabel met gebruik van WITH TOTALS.
DagBruto-omzetNettoverkoopTotale verkoopBruto-omzet totalenNetto-omzet totalenTotale-omzet totalen
2024-01-0114761524
2024-01-0225861524
2024-01-0336961524

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:

FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS

Deze query kan een rapport leveren dat vergelijkbaar is met dit:

Voorbeeld van ShopifyQL-tabel van verkopen met GROUP_TOTALS.
LandKlant-IDTotale verkoopTotale-omzet landtotalenTotale-omzet totalen
US1101
USnull-111
Canada1111

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:

FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year

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:

FROM orders
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month ALL
SINCE -12m
UNTIL yesterday

Compensatie-operators

Je kunt filteren op specifieke datums of op datum- en tijdcompensaties. De offset-operators van ShopifyQL zijn:

Lijst met ShopifyQL-compensatie-operators, zoals compensatie per seconden, minuten, of een specifieke datum.
Offset-operatorBeschrijving
-{#}sAantal seconden sinds de datum en tijd dat de aanvraag is gedaan.
-{#}minAantal minuten sinds de datum en tijd dat de aanvraag is gedaan.
-{#}hAantal uren sinds de datum en tijd dat de aanvraag is gedaan.
-{#}dAantal dagen sinds de datum en tijd dat de aanvraag is gedaan.
-{#}wAantal weken sinds de datum en tijd dat de aanvraag is gedaan.
-{#}mAantal maanden sinds de datum en tijd dat de aanvraag is gedaan.
-{#}qAantal kwartalen geleden vanaf de datum en tijd waarop de query wordt uitgevoerd.
-{#}yAantal jaren sinds de datum en tijd dat de aanvraag is gedaan.
yyyy-MM-ddEen specifieke datum.
yyyy-MM-ddThh:mm:ssEen 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.

Lijst met ShopifyQL-datumfuncties, zoals het eind van de dag of het begin van het kwartaal.
DatumfunctieBeschrijving
nowDe 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:

FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)

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:

FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021

Genoemde datumbereikoperators

DURING accepteert de volgende operatoren voor het benaamde datumbereik:

Lijst van genoemde ShopifyQL-datumbereikoperators, zoals vandaag, gisteren of deze week.
Operatoren voor het benaamde datumbereikBeschrijving
todayDe datum waarop de query wordt uitgevoerd.
yesterdayDe afgelopen 24 uur vanaf het moment dat de query werd uitgevoerd.
this_weekDe huidige kalenderweek.
this_monthDe huidige kalendermaand.
this_quarterHet huidige kalenderkwartaal.
this_yearHet huidige kalenderjaar.
last_weekDe vorige kalenderweek.
last_monthDe vorige kalendermaand.
last_quarterHet vorige kalenderkwartaal.
last_yearHet vorige kalenderjaar.
bfcmYYYYHet 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 DURINGen 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 die DURING gebruikt. Als er geenUNTIL waarde wordt opgegeven, berekent het het tijdsbereik als gelijk aan de waarde die is opgegeven in DURING. 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.
  • 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 er TIMESERIES voor gebruiken in plaats van GROUP BY.

In het volgende voorbeeld wordt de netto-omzet in de vorige maand vergeleken met die in dezelfde maand van het voorgaande jaar:

FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year

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:

Lijst met ShopifyQL-operators met een relatief datumbereik, zoals vorige periode of vorig jaar.
Operator met een relatief datumbereikBeschrijving
previous_periodEén periode voor het basisdatumbereik.
previous_yearEén jaar voor het basisdatumbereik.
previous_quarterEén kwartaal voor het basisdatumbereik.
previous_monthEén maand voor het basisdatumbereik.
previous_weekEén week voor het basisdatumbereik.
previous_dayEén dag voor het basisdatumbereik.
previous_hourEén uur voor het basisdatumbereik.
previous_minuteEén minuut voor het basisdatumbereik.
previous_secondEé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:

FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC

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 BYbevat.

Voorbeeld van TIMESERIES en de volgorde van kolommen wanneer ORDER BY aanwezig is in ShopifyQL.
TIMESERIESORDER BYResultaat
AanwezigNiet aanwezigResultaten worden geordend aan de hand van deTIMESERIES dimensie.
AanwezigAanwezigResultaten worden geordend aan de hand van deTIMESERIES tijdsafmeting en vervolgens deORDER BY dimensie.
Niet aanwezigAanwezigResultaten worden geordend aan de hand van deORDER BY dimensie.
Niet aanwezigNiet aanwezigDe 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:

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 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:

FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line

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.

FROM sales
SHOW total_sales AS "My Total Sales"

Andere functies en operators van ShopifyQL

ShopifyQL heeft de volgende aanvullende operators en functies:

Wiskundige operator

ShopifyQL maakt het mogelijk om gebruik te maken van metrische gegevens. Er zijn de volgende operators beschikbaar voor zelfoperators:

Lijst met wiskundige operators van ShopifyQL, inclusief plus en min.
Wiskundige operatorBeschrijving
+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.

FROM sales
SHOW (net_sales + returns) AS order_value, orders, (net_sales + returns)/orders AS sales_per_order
GROUP BY billing_region
SINCE -1y
UNTIL today

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:

Lijst met ondersteunde ShopifyQL-functies, zoals trimmen en afronden.
Functie-operatorBeschrijving
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:
  • If decimal_places > 0, then the function rounds the value to the right of the decimal point.
  • If decimal_places < 0, then the function rounds the value to the left of the decimal point.
  • If decimal_places = 0, then the function rounds the value to integer. In this case, the argument can be omitted entirely.

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:

FROM sales
SHOW average_order_value, round(gross_sales)
GROUP BY billing_region
SINCE 2021-01-01
UNTIL 2021-12-31

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:

FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day

Partial string and array matching

You can use the following operators for partial string and array matching:

List of Partial string and array matching operators in ShopifyQL.
OperatorDescription
STARTS WITHReturn all rows where a column starts with a prefix.
ENDS WITHReturn all rows where a column ends with a suffix.
CONTAINSReturn 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:

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

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:

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

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 */.

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
*/
Zat het antwoord dat je zocht er niet bij? Wij helpen je graag verder.