Sådan bruger du ShopifyQL-forespørgselseditoren
Du kan bruge ShopifyQL med det nye Shopify Analytics til at udforske din egen virksomheds database og hente data, der giver dig mere dybdegående viden om din virksomhed.
ShopifyQL eller Shopify Query Language er Shopifys forespørgselssprog, der er udviklet til handel. Forespørgselssprog bruges til at anmode om og hente data fra databaser. Din butiks data gemmes i databasetabeller, som er struktureret i definerede kolonner og rækker. Kolonner definerer den type af informationer, som de indeholder, f.eks. salg, mens rækker angiver den faktiske værdi for datatypen, f.eks. 2.450 USD i salg.
Hvis du vil hente dine data i et format, der har mening, skal du sende en forespørgsel til databasen. En forespørgsel er et spørgsmål, der beder om specifikke data som svar, som er lavet af søgeord og deres tilsvarende parametre. Kombinationen af flere søgeord med specifikke parametre opretter din forespørgsel. Når du har oprettet din forespørgsel, kan du køre den og få en rapport.
På denne side
Ordliste
Vilkår | Definition |
---|---|
Mål | En attribut, der segmenterer data, så de kan sorteres og præsenteres mere tydeligt. Almindelige eksempler på dimensioner omfatter klokkeslæt, produkter og sted. Dimensioner bruges som parametre i ShopifyQL. |
Søgeord | ShopifyQL-syntaks, der fungerer som en kommando, som bruges til at dirigere din forespørgsel. |
Metrisk | Et kvantitativt måling af data. Almindelige eksempler på parametre omfatter salg i alt, antallet af ordrer og bruttofortjeneste. |
Parameter | ShopifyQL-syntaks, der identificerer de databaseelementer eller -oplysninger, der skal medtages i forespørgslen. |
Operator | Et reserveret ord eller tegn, der bruges som en del af en forespørgsel. Eksempler omfatter STARTS WITH , >= eller last_week . |
ShopifyQL-syntaks
Du skal opfylde følgende krav, når du skal oprette en gyldig rapportforespørgsel ved hjælp af ShopifyQL:
- Du kan placere en hel forespørgsel på én linje eller på separate linjer.
- Du skal som minimum inkludere søgeordene
FROM
ogSHOW
med deres relevante parametre. Alle andre søgeord og parametre er valgfrie. - Alle søgeord i en forespørgsel skal inkluderes i følgende rækkefølge:
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
TIMESERIES
-
HAVING
-
SINCE
&UNTIL
ellerDURING
-
COMPARE TO
& valgfritUNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
&TYPE
-
Dette er et eksempel på ShopifyQL, der er skrevet som en forespørgsel ved hjælp af den korrekte syntaks. Søgeordene har fed skrift, deres tilsvarende parametre er inkluderet ved hjælp af generiske pladsholdere, og valgfrie parametre er i parenteser:
ShopifyQL-søgeord
ShopifyQL-forespørgsler varierer fra grundlæggende (data til generelt indblik) til omfattende (detaljeret indblik). Alle søgeord har en specifik funktion, der opretter din forespørgsel.
Søgeord | Beskrivelse |
---|---|
FROM | Angiver den tabel med datasæt, som dataene skal vælges fra. |
SHOW | Vælger de kolonner, du vil trække ud af tabellen med datasæt. |
WHERE | Definerer den betingelse eller de betingelser, som rækker skal opfylde for at kunne blive valgt. |
GROUP BY | Grupperer de udtrukne data efter en dimension eller tidsdimensioner. |
WITH | Ændrer funktionsmåden for visse ShopifyQL-søgeord. |
TIMESERIES | Skelner mellem gruppering efter tidsmål og udfyldningsdatoer i en forespørgsel. |
HAVING | Filtrerer resultaterne af en forespørgsel, når de er blevet grupperet. |
SINCE | Viser data efter et specifikt tidspunkt i fortiden. Parres ofte med UNTIL . |
UNTIL | Viser data indtil et specifikt tidspunkt i fortiden. Parres ofte med SINCE eller COMPARE TO . |
DURING | Viser data på et specifikt tidspunkt i fortiden. |
COMPARE TO | Viser data til sammenligning med et bestemt tidspunkt i fortiden. |
ORDER BY | Angiver den kolonne, som dataene skal sorteres efter. |
LIMIT | Begrænser det antal rækker med data, som vises. |
VISUALIZE | Viser dine data i en kurve- eller søjlevisualisering. Du kan angive, hvilken visualisering du ønsker med TYPE . |
AS | Et valgfrit søgeord, der omdøber en kolonne til et navn, du har valgt. |
FROM og SHOW
Det kræver kun to søgeord at oprette de mest enkle ShopifyQL-forespørgsler: “FROM
” og “SHOW
” skrevet i denne rækkefølge. “FROM
” efterfulgt af et eller flere tabelnavnparameteren angiver den tabel, du vil oprette en forespørgsel for. “SHOW
” efterfulgt af ethvert antal kolonnenavnparametre angiver de kolonner, du vil vælge.
SHOW
kan bruges til at angive rækkefølgen, som parametre og dimensioner returneres i, i rapporten.
Du kan f.eks. returnere summen af salg i alt ved at skrive denne forespørgsel:
WHERE
Søgeordet “WHERE
” giver dig mulighed for at anvende et dimensionsfilter til en hel ShopifyQL-forespørgsel. Filteret kan ændres af begge sammenligningsoperatorer (f.eks. større end >
), logiske operatorer (som f.eks. AND
eller NOT
) samt delvis streng- og matrixmatchning (f.eks. STARTS WITH
og CONTAINS
).
WHERE
betingelser skal opfylde følgende krav:
- Værdier skal pakkes ind i enkelte anførselstegn ('), ikke dobbelte anførselstegn (").
- Betingelser må ikke indeholde aritmetik.
- Betingelser kan kun henvise til en dimension, ikke et parameter.
Hvis du f.eks. vil returnere salg i alt, men der er filtreret efter faktureringsland, er din forespørgsel:
Som i ovenstående eksempel kan du filtrere det resultat, der er angivet med WHERE
-parameteret, også selv om dette parameter ikke er inkluderet i søgeordet SHOW
. I dette tilfælde filtreres salg i alt kun for ordrer fra Canada, selvom billing_country
ikke er inkluderet i resultatsættet.
Sammenligningsoperatorer
Søgeordet “WHERE
” bruger sammenligningsoperatorer til at filtrere data. I ovenstående eksempel er “=
” blevet brugt til at angive, at forespørgslen filtrerer efter en specifik værdi, men der er andre operatorer tilgængelige for dig:
Sammenligningsoperator | Beskrivelse |
---|---|
= | er lig med |
!= | ikke lig med |
< | mindre end |
> | større end |
<= | mindre end eller lig med |
>= | større end eller lig med |
Logisk operatorer
Hvis du vil filtrere dine data, kan du føje logiske operatorer til din forespørgsel. De logiske ShopifyQL-operatorer er:
Logisk operator | Beskrivelse |
---|---|
AND | Filtrer for at inkludere alle de rækker, hvor betingelserne, der er adskilt af “AND ”, er opfyldt. |
OR | Filtrer for at inkludere alle de rækker, hvor én af betingelserne, der er adskilt af “OR ”, er opfyldt. |
NOT | Filtrer for kun at inkludere de rækker, hvor betingelserne ikke er opfyldt, f.eks. de rækker, der ikke indeholder den angivne værdi. |
Du kan bruge flere filtre med søgeordet “WHERE
” ved at tilføje logiske operatorer.
Tilføjelse til eksemplet på datasætforespørgslen: Hvis du ønsker en månedlig gruppering af alle ordrer med tørrede ferskener, hvor faktureringsadressen var i Canada, og der var anvendt rabat, vil forespørgslen være:
GROUP BY
Hvis du vil segmentere en parameter efter en dimension, f.eks. for at gruppere salg efter område, skal du bruge søgeordet “GROUP BY
”. Du kan kombinere søgeordet “GROUP BY
” med alle andre dimensionsparametre.
En forespørgsel, der grupperer salg i alt efter faktureringsland og -område, skrives f.eks. således:
Her er en anden eksempelforespørgsel, der bruger en tidsdimension til at vise salg i alt efter måned:
Ovenstående forespørgsel returnerer ikke de måneder, hvor du ikke har haft nogen salg. Hvis du vil have en forespørgsel, der returnerer en komplet, ikke-afbrudt tidsperiode, skal du bruge søgeordet “TIMESERIES
”.
Tidsmål
Dette er de tidsdimensioner, du kan bruge til at gruppere dine data:
Operator | Beskrivelse |
---|---|
second | Gruppering efter sekund i en time. |
minute | Gruppering efter minut i en time. |
hour | Gruppering efter time på kalenderdag. |
day | Gruppering efter kalenderdag. |
week | Gruppering efter kalenderuge. |
month | Gruppering efter kalendermåned. |
quarter | Gruppering efter kalenderkvartal. |
year | Gruppering efter kalenderår. |
hour_of_day | Gruppering efter 24 timer (1, 2, ..., 24). |
day_of_week | Gruppering efter ugedag (M, T, O, ..., S). |
week_of_year | Gruppering efter uge i året (1, 2, ..., 52). |
month_of_year | Gruppering efter måned på året (1, 2, ..., 12). |
TIMESERIES
Du kan bruge søgeordet TIMESERIES
, når du ønsker at skelne mellem gruppering efter tidsmål, vise parametre over tid og udfylde datoer i en forespørgsel for at omdanne den til en tidsseriegraf, hvor data ikke eksisterer.
I dette eksempel udfylder du manglende data om salg i alt i de seneste 15 dage:
TIMESERIES og rækkefølgen af kolonner
Afhængigt af om TIMESERIES
angives og enten findes i GROUP BY
eller SHOW
-værdierne, kan rækkefølgen på kolonner ændre sig.
TIMESERIES | SHOW | GROUP BY | Resultat |
---|---|---|---|
Angivet | Ikke til stede | Ikke til stede |
TIMESERIES er den første dimension. |
Angivet | Ikke til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i GROUP BY . |
Angivet | Til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i SHOW . |
Ikke angivet | Ikke til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i GROUP BY . Dataene er ikke udfyldt retroaktivt. |
Ikke angivet | Til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i SHOW . Dataene er ikke udfyldt retroaktivt. |
Ikke angivet | Til stede | Ikke til stede | Udløser en syntaksfejl, fordi SHOW kun kan referere til dimensioner, der findes GROUP BY . |
HAVING
Ligesom med WHERE
, kan du bruge søgeordet HAVING
til at filtrere resultaterne af en forespørgsel, efter de er blevet grupperet. Filtret kan have én betingelse, men betingelsen kan ændres af både sammenligningsoperatorer (som større end >
) og logiske operatorer (som AND
eller NOT
). I modsætning til søgeordet WHERE
kan HAVING
referere til aliaser, aggregatfunktioner og grupperingskolonner.
HAVING
kræver, at din forespørgsel indeholder en GROUP BY
eller TIMESERIES
-klausul, fordi HAVING
filtrerer en forespørgseæs resultater, når den er blevet grupperet efter GROUP BY
eller TIMESERIES
.
I dette eksempel filtrerer du salg i alt for alle produkter, hvor salg i alt er større end 1.000 og under 5.000:
WITH
Søgeordet WITH
ændrer opførslen for visse andre ShopifyQL-søgeord. Der er tre tilgængelige modifikationer:
-
TOTALS
: Giver en oversigt over parametre på øverste niveau, før de opdeles efter dimensioner. -
GROUP_TOTALS
: Angiver et samlet beløb for alle undergrupperinger, når der er en gruppér efter-aggregering. -
PERCENT_CHANGE
: Føjer et parameter for procentændring til hver sammenligningskolonne iCOMPARE TO
. Når denne modifikation er til stede, tilføjes der en ny kolonne for hver sammenligningsparameterkolonne, som indeholder procentændringen.
TOTALS
Modifikationen TOTALS
giver en oversigt over parametre på øverste niveau, før de opdeles efter andre dimensioner. Når du bruger WITH TOTALS
, returnerer forespørgslen de samlede beløb som ekstra kolonner i resultatsættet med parameternavnet og "samlet beløb" som en del af kolonne-navnet. Hver række indeholder alle gældende samlede beløb.
Denne forespørgsel viser f.eks. de samlede beløb for salg i alt:
Denne forespørgsel returnerer muligvis en rapport, der minder om denne:
Dag | Bruttoomsætning | Nettoomsætning | Salg i alt | Bruttoomsætning i alt | Nettoomsætning i alt | Samlede salg i alt |
---|---|---|---|---|---|---|
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
Modifikationen GROUP_TOTALS
giver et samlet beløb for alle undergrupper, når der er en gruppér efter-aggregering. Når du bruger WITH GROUP_TOTALS
, returnerer forespørgslen de samlede beløb som ekstra kolonner i resultatsættet med parameternavnet, de dimensioner, der bliver lagt sammen, og "samlet beløb" som en del af kolonne-navnet. Hver række indeholder alle gældende samlede beløb.
Denne forespørgsel viser f.eks. salg i alt efter faktureringsland:
Denne forespørgsel returnerer muligvis en rapport, der minder om denne:
Land | Kunde-id | Salg i alt | Samlede salg i alt efter land | Samlede salg i alt |
---|---|---|---|---|
USA | 1 | 1 | 0 | 1 |
USA | null | -1 | 1 | 1 |
Canada | 1 | 1 | 1 | 1 |
PERCENT_CHANGE
Modifikationen PERCENT_CHANGE
føjer et parameter for procentændring til hver sammenligningskolonne, når du bruger COMPARE TO
. Når du bruger WITH PERCENT_CHANGE
, returnerer forespørgslen den procentvise ændring for hvert sammenligningsparameter som ekstra kolonner i resultaterne, der er angivet med parameternavnet og “procentændring” som en del af kolonnenavnet.
Formlen, der bruges til beregning af procentændring, er: (base_column - comparison_column) * 100 / abs(comparison_column)
Denne forespørgsel bruger f.eks. SINCE
og COMPARE TO
til at sammenligne nettoomsætningen pr. dag i den foregående måned med den samme måned i det forrige år med en kolonne for procentændring:
Kolonnerne i den resulterende rapport omfatter dag, nettoomsætningen, sammenligningsdagen, sammenligning af nettoomsætningen og procentændring i nettoomsætningen.
SINCE og UNTIL
Hvis du vil filtrere din forespørgsel efter en dato eller et bestemt tidsrum, kan du bruge søgeordene SINCE
og UNTIL
og deres tilknyttede parametre. Disse søgeord er unikke, fordi de kun filtrerer tidsperioder. Hvis du bruger SINCE
og ikke angiver en UNTIL
-værdi, vil slutningen af dit tidsinterval som standard være today
.
Dette er f.eks. en forespørgsel for at finde nettoomsætning for de seneste 12 måneder i Canada til og med i går:
Operatorer for relative tidspunkter
Du kan filtrere efter specifikke datoer eller efter relative tidspunkter. ShopifyQL-operatorerne for relativ tid er:
Operator for relativ dato | Beskrivelse |
---|---|
-{#}s | Antal sekunder siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}min | Antal minutter siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}h | Antal timer siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}d | Antal dage siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}w | Antal uger siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}m | Antal måneder siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}q | Antal kvartaler siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}y | Antal år siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
yyyy-MM-dd | En bestemt dato. |
yyyy-MM-ddThh:mm:ss | En bestemt dato og et bestemt klokkeslæt. |
Datofunktioner
Du kan bruge følgende funktioner kombineret med alle operatorer for datointerval (med undtagelse af specifikke datoer) i udsagn medSINCE
og UNTIL
. Funktionerne “startOf...
” afkortes til starten af den tilknyttede tidsenhed (minut, time, dag, uge, måned, kvartal og år), når de bruges sammen med “SINCE
”, og “endOf...
”-funktionerne afkortes til slutningen af den tilknyttede tidsenhed, når de bruges sammen med “UNTIL
”.
Datofunktionsenheder og operatorenheder skal matche for at returnere et gyldigt resultat. F.eks. er startOfMonth(-1m)
korrekt, men startOfMonth(-1d)
er ikke.
Datofunktion | Beskrivelse |
---|---|
now | Dato og klokkeslæt for, hvornår forespørgslen køres. |
startOfMinute(-{#}min) | Afkorter datointervaloperatoren til starten af målminuttet. |
endOfMinute(-{#}min) | Afkorter datointervaloperatoren til slutningen af målminuttet. |
startOfHour(-{#}h) | Afkorter datointervaloperatoren til starten af måltimen. |
endOfHour(-{#}h) | Afkorter datointervaloperatoren til slutningen af måltimen. |
startOfDay(-{#}d) | Afkorter datointervaloperatoren til starten af måldagen. |
endOfDay(-{#}d) | Afkorter datointervaloperatoren til slutningen af måldagen. | startOfWeek(-{#}w) | Afkorter datointervaloperatoren til starten af målugen. |
endOfWeek(-{#}w) | Afkorter datointervaloperatoren til slutningen af målugen. |
startOfMonth(-{#}m) | Afkorter datointervaloperatoren til starten af målmåneden. |
endOfMonth(-{#}m) | Afkorter datointervaloperatoren til slutningen af målmåneden. |
startOfQuarter(-{#}q) | Afkorter datointervaloperatoren til starten af målkvartalet. |
endOfQuarter(-{#}q) | Afkorter datointervaloperatoren til slutningen af målkvartalet. |
startOfYear(-{#}y) | Afkorter datointervaloperatoren til starten af målåret. |
endOfYear(-{#}y) | Afkorter datointervaloperatoren til slutningen af målåret. |
Hvis det f.eks. er den 8. november 2022 i dag, kan du bruge følgende forespørgsel til at returnere bruttoomsætningen fra 1. januar 2020 til 31. oktober 2022:
DURING
Søgeordet “DURING
” forenkler datofiltrering for datointervaller og erstatter brugen af “SINCE
” og “UNTIL
”. Du kan bruge søgeordet “DURING
” til at filtrere forespørgselsresultaterne for en kendt periode, f.eks. et kalenderår eller en specifik måned eller for datointervaller, der har forskellige datoer hvert år, som f.eks. Black Friday/Cyber Monday. For eksempel:
Operatorer for navngivet datointerval
DURING
accepterer følgende operatorer for navngivet datointerval:
Operatorer for navngivet datointerval | Beskrivelse |
---|---|
today | Den dato, hvor forespørgslen blev kørt. |
yesterday | Den forrige 24-timers periode fra det tidspunkt, hvor forespørgslen blev kørt. |
this_week | Den aktuelle kalenderuge. |
this_month | Den aktuelle kalendermåned. |
this_quarter | Det aktuelle kalenderkvartal. |
this_year | Det aktuelle kalenderår. |
last_week | Den forrige kalenderuge. |
last_month | Den forrige kalendermåned. |
last_quarter | Det forrige kalenderkvartal. |
last_year | Det forrige kalenderår. |
bfcmYYYY | Intervallet Black Friday Cyber Monday for det angivne år. F.eks. returnerer bfcm2022 resultater for 25.-28. november 2022. |
COMPARE TO
Søgeordet COMPARE TO
giver dig mulighed for at sammenligne data for hele datointervallet mellemSINCE
og UNTIL
eller DURING
samt det i COMPARE TO
.
Du kan bruge søgeordet COMPARE TO
med følgende parametertyper:
- Absolutte datoer, såsom
2023-01-01
: Inkluderer parametre for den angivne periode og sammenligningsparametre for samme periode på den absolutte dato. -
Navngivne datoer, såsom
last_week
: Inkluderer parametre for den angivne periode og sammenligningsparametre for samme periode på den navngivne dato.- Den operator,
COMPARE TO
bruger, behøver ikke at have samme længde som den, der bruges afDURING
. Hvis der ikke er angivet enUNTIL
-værdi, beregnes tidsintervallet som at være lig med den værdi, der er angivet iDURING
. F.eks. sammenlignerDURING this_week COMPARE TO last_month
denne uges data med en periode på en uge, der starter i begyndelsen af sidste måned.
- Den operator,
Relative datoer, såsom
-3q
: Inkluderer parametre for den angivne periode og sammenligningsparametre for samme periode på den relative dato.Flere datosammenligninger, f.eks.
-1y, -2y
: Sammenlign dine data fra et bestemt datointerval med flere andre datointervaller. Det kan være nyttigt, når du vil spore ændringer over flere perioder.Hvis du bruger en datodimension i en forespørgsel sammen med
COMPARE TO
, skal du brugeTIMESERIES
til den i stedet forGROUP BY
.
Det følgende eksempel sammenligner nettoomsætningen i den foregående måned med den samme måned i forrige år:
Operatorer for relativt datointerval
Relative operatorer returnerer den samme tidsperiode som basisdatointervallet, men er flyttet tilbage med den angivne periode. Ud over de navngivne datointervaloperatorer COMPARE TO
du acceptere følgende relative operatorer:
Operator for relativt datointerval | Beskrivelse |
---|---|
previous_period | En periode før basisdatointervallet. |
previous_year | Et år før basisdatointervallet. |
previous_quarter | Et kvartal før basisdatointervallet. |
previous_month | En måned før basisdatointervallet. |
previous_week | En uge før basisdatointervallet. |
previous_day | En dag før basisdatointervallet. |
previous_hour | En time før basisdatointervallet. |
previous_minute | Et minut før basisdatointervallet. |
previous_second | Et sekund før basisdatointervallet. |
ORDER BY
Du kan angive, hvordan du vil sortere de data, der returneres til dig af din forespørgsel, ved hjælp af søgeordet “ORDER BY
” og dets parametre: “ASC
” (for stigende rækkefølge) og “DESC
” (for faldende rækkefølge).
Du kan angive enhver parameter eller dimension, som du medtager i din forespørgsel ved hjælp af søgeordet “ORDER BY
”, herunder flere felter.
Denne forespørgsel returnerer f.eks. nettoomsætningen for alle produkter og varianter i det seneste år. Resultaterne sorteres først i alfabetisk rækkefølge efter produkttitel og derefter i omvendt alfabetisk rækkefølge efter produkttype:
Den rækkefølge, som du skriver dine parametre eller dine dimensioner i, er vigtig. Hvis du angiver flere værdier for “ORDER BY
”, anvendes sorteringen på alle parametre eller dimensioner i den angivne rækkefølge.
TIMESERIES og rækkefølgen af kolonner
Afhængigt af, om forespørgslen indeholder TIMESERIES
og ORDER BY
, kan rækkefølgen af kolonner ændre sig.
TIMESERIES | ORDER BY | Resultat |
---|---|---|
Til stede | Ikke til stede | Resultaterne er sorteret efter dimensionen TIMESERIES . |
Til stede | Til stede | Resultaterne er sorteret efter tidsmålet TIMESERIES og derefter dimensionen ORDER BY . |
Ikke til stede | Til stede | Resultaterne er sorteret efter dimensionen ORDER BY . |
Ikke til stede | Ikke til stede | Resultaterne er sorteret efter den første SHOW kolonne. |
LIMIT
Søgeordet LIMIT
giver dig mulighed for at angive et maksimalt antal rækker, som forespørgslen returnerer. Dette er nyttigt, når du blot vil forstå, hvordan dataene i hver kolonne vises, eller til større rapporter, hvor forespørgsler kan være længere om at returnere værdier. Du kan kombinere LIMIT
med ORDER BY
for at oprette top- og bundlister.
Hvis du ikke angiver en LIMIT
-værdi, bliver forespørgslen som standard 1.000 rækker.
Du kan også bruge et valgfrit { OFFSET # }
-parameter til at springe et vist antal rækker over, før du begynder at returnere rækkedata. Det resulterende udtryk vil blive formateret på samme måde som: LIMIT 15 { OFFSET 5 }
.
Dette eksempel bruger “LIMIT
” og “ORDER BY
” til at oprette en liste over de 10 mest solgte produkter i de sidste tre måneder:
VISUALIZE OG TYPE
Søgeordet VISUALIZE
giver dig mulighed for at skrive en ShopifyQL-forespørgsel, der viser data grafisk. De understøttede værdier omfatter følgende værdier:
-
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
Søgeordet TYPE
er valgfrit og skal være bruges med en enkelt type visualisering. Hvis TYPE
ikke er inkluderet i din forespørgsel, beslutter ShopifyQL automatisk den bedste visualisering, der passer til din forespørgsel. Hvis din forespørgsel ikke kan visualiseres som den er skrevet, returnerer ShopifyQL tabeldata.
VISUALIZE
accepterer også et valgfrit LIMIT
-søgeord, hvor parameteret er det begrænsede antal datapunkter, der skal gengives.
Du kan f.eks. visualisere dine salgstendenser i det seneste år efter måned med en tendenslinje. Denne forespørgsel returnerer et tidsseriediagram, som viser bruttoomsætning efter måned i det seneste år. Bruttoomsætningen afspejles med en enkelt linje, hvor X-aksen er måned og Y-aksen er bruttoomsætning:
AS
Søgeordet AS
er et valgfrit søgeord, der giver dig mulighed for at omdøbe (eller angive et alias for) en kolonne eller en returværdi for en aggregatfunktion.
AS
accepterer kun et enkelt parameter. Hvis aliasset har et mellemrum i navnet, skal du omgive aliasset med dobbelte anførselstegn (").
Andre ShopifyQL-funktioner og -operatorer
ShopifyQL indeholder følgende yderligere operatorer og funktioner:
-
Matematisk operatorer, såsom
+
eller/
-
Funktioner, såsom
round()
ogtrim()
- Implicitte forbindelser
-
Delvis streng- og matrixmatchning, såsom
STARTS WITH
ogCONTAINS
- Kommentarer
Matematiske operatorer
ShopifyQL tillader algoritmiske handlinger med parametrene i dine data. Følgende matematiske operatorer er tilgængelige:
Matematiske operatorer | Beskrivelse |
---|---|
+ | Addition af to tal. |
- | Subtraktion af to tal. |
* | Multiplikation af to tal. |
/ | Division af to tal. |
Denne forespørgsel beregner f.eks. ordreværdien for alle områder i det seneste år. Når du bruger matematiske operatorer med parametre, kan du bruge søgeordet “AS
” til at tildele et nyt navn til den nye parameter.
Funktioner
ShopifyQL-funktioner giver dig mulighed for at aggregere kolonner eller kombinere dem for at skabe en ny værdi, hvilket minder om pivottabeller i Microsoft Excel. Følgende funktionsoperatorer er tilgængelige i den aktuelle version af ShopifyQL:
Funktionsoperator | Beskrivelse |
---|---|
TRIM(column_name) | Fjerner mellemrum foran og efter en streng. |
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 */
.