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.

Ordliste

Definitioner af ShopifyQL-termer, som f.eks. dimensioner, søgeord og operator.
VilkårDefinition
MålEn 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øgeordShopifyQL-syntaks, der fungerer som en kommando, som bruges til at dirigere din forespørgsel.
MetriskEt kvantitativt måling af data. Almindelige eksempler på parametre omfatter salg i alt, antallet af ordrer og bruttofortjeneste.
ParameterShopifyQL-syntaks, der identificerer de databaseelementer eller -oplysninger, der skal medtages i forespørgslen.
OperatorEt 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 og SHOW 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:
    1. FROM
    2. SHOW
    3. WHERE
    4. GROUP BY
    5. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    7. HAVING
    8. SINCE & UNTIL eller DURING
    9. COMPARE TO & valgfrit UNTIL
    10. ORDER BY
    11. LIMIT
    12. 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:

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

Liste over ShopifyQL-søgeord og deres beskrivelser.
SøgeordBeskrivelse
FROMAngiver den tabel med datasæt, som dataene skal vælges fra.
SHOWVælger de kolonner, du vil trække ud af tabellen med datasæt.
WHEREDefinerer den betingelse eller de betingelser, som rækker skal opfylde for at kunne blive valgt.
GROUP BYGrupperer de udtrukne data efter en dimension eller tidsdimensioner.
WITHÆndrer funktionsmåden for visse ShopifyQL-søgeord.
TIMESERIESSkelner mellem gruppering efter tidsmål og udfyldningsdatoer i en forespørgsel.
HAVINGFiltrerer resultaterne af en forespørgsel, når de er blevet grupperet.
SINCEViser data efter et specifikt tidspunkt i fortiden. Parres ofte med UNTIL.
UNTILViser data indtil et specifikt tidspunkt i fortiden. Parres ofte med SINCE eller COMPARE TO.
DURINGViser data på et specifikt tidspunkt i fortiden.
COMPARE TOViser data til sammenligning med et bestemt tidspunkt i fortiden.
ORDER BYAngiver den kolonne, som dataene skal sorteres efter.
LIMITBegrænser det antal rækker med data, som vises.
VISUALIZEViser dine data i en kurve- eller søjlevisualisering. Du kan angive, hvilken visualisering du ønsker med TYPE.
ASEt 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:

FROM sales
SHOW total_sales

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:

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

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:

Liste over sammenligningsoperatorer i ShopifyQL, f.eks. større end eller lig med.
SammenligningsoperatorBeskrivelse
=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:

Liste over logiske ShopifyQL-operatorer, f.eks. AND, OR og NOT.
Logisk operatorBeskrivelse
ANDFiltrer for at inkludere alle de rækker, hvor betingelserne, der er adskilt af “AND”, er opfyldt.
ORFiltrer for at inkludere alle de rækker, hvor én af betingelserne, der er adskilt af “OR”, er opfyldt.
NOTFiltrer 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:

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

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:

FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region

Her er en anden eksempelforespørgsel, der bruger en tidsdimension til at vise salg i alt efter måned:

FROM sales
SHOW total_sales
GROUP BY month

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

FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today

Tidsmål

Dette er de tidsdimensioner, du kan bruge til at gruppere dine data:

Liste over tidsmål i ShopifyQL-tid, f.eks. sekund, minut eller ugedag.
OperatorBeskrivelse
secondGruppering efter sekund i en time.
minuteGruppering efter minut i en time.
hourGruppering efter time på kalenderdag.
dayGruppering efter kalenderdag.
weekGruppering efter kalenderuge.
monthGruppering efter kalendermåned.
quarterGruppering efter kalenderkvartal.
yearGruppering efter kalenderår.
hour_of_dayGruppering efter 24 timer (1, 2, ..., 24).
day_of_weekGruppering efter ugedag (M, T, O, ..., S).
week_of_yearGruppering efter uge i året (1, 2, ..., 52).
month_of_yearGruppering 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:

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

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.

Eksempler på TIMESERIES, og hvordan rækkefølgen på kolonner vises med GROUP BY eller SHOW i ShopifyQL.
TIMESERIESSHOWGROUP BYResultat
AngivetIkke til stedeIkke til stede TIMESERIES er den første dimension.
AngivetIkke til stedeTil stedePositionen for tidsdimensioner defineres efter dens position i GROUP BY.
AngivetTil stedeTil stedePositionen for tidsdimensioner defineres efter dens position i SHOW.
Ikke angivetIkke til stedeTil stedePositionen for tidsdimensioner defineres efter dens position i GROUP BY. Dataene er ikke udfyldt retroaktivt.
Ikke angivetTil stedeTil stedePositionen for tidsdimensioner defineres efter dens position i SHOW. Dataene er ikke udfyldt retroaktivt.
Ikke angivetTil stedeIkke til stedeUdlø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:

FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000

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

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

Denne forespørgsel returnerer muligvis en rapport, der minder om denne:

Eksempel på ShopifyQL-tabel over salg, der bruger “WITH TOTALS”.
DagBruttoomsætningNettoomsætningSalg i altBruttoomsætning i altNettoomsætning i altSamlede salg i alt
2024-01-0114761524
2024-01-0225861524
2024-01-0336961524

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:

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

Denne forespørgsel returnerer muligvis en rapport, der minder om denne:

Eksempel på En ShopifyQL-tabel over salg, der bruger GROUP_TOTALS.
LandKunde-idSalg i altSamlede salg i alt efter landSamlede salg i alt
USA1101
USAnull-111
Canada1111

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:

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

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:

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

Operatorer for relative tidspunkter

Du kan filtrere efter specifikke datoer eller efter relative tidspunkter. ShopifyQL-operatorerne for relativ tid er:

Liste over ShopifyQL-operatorer til relative tidspunkter, som f.eks. efter sekunder, minutter eller en bestemt dato.
Operator for relativ datoBeskrivelse
-{#}sAntal sekunder siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}minAntal minutter siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}hAntal timer siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}dAntal dage siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}wAntal uger siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}mAntal måneder siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}qAntal kvartaler siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
-{#}yAntal år siden fra datoen og tidspunktet, hvor forespørgslen blev kørt.
yyyy-MM-ddEn bestemt dato.
yyyy-MM-ddThh:mm:ssEn 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.

Liste over datofunktioner i ShopifyQL, f.eks. sidst på dagen eller starten på kvartalet.
DatofunktionBeskrivelse
nowDato 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:

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

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:

FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021

Operatorer for navngivet datointerval

DURING accepterer følgende operatorer for navngivet datointerval:

Liste over ShopifyQL-operatorer for navngivne datointerval, som f.eks. i dag, i går eller i denne uge.
Operatorer for navngivet datointervalBeskrivelse
todayDen dato, hvor forespørgslen blev kørt.
yesterdayDen forrige 24-timers periode fra det tidspunkt, hvor forespørgslen blev kørt.
this_weekDen aktuelle kalenderuge.
this_monthDen aktuelle kalendermåned.
this_quarterDet aktuelle kalenderkvartal.
this_yearDet aktuelle kalenderår.
last_weekDen forrige kalenderuge.
last_monthDen forrige kalendermåned.
last_quarterDet forrige kalenderkvartal.
last_yearDet forrige kalenderår.
bfcmYYYYIntervallet 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 af DURING. Hvis der ikke er angivet en UNTIL-værdi, beregnes tidsintervallet som at være lig med den værdi, der er angivet i DURING. F.eks. sammenligner DURING this_week COMPARE TO last_month denne uges data med en periode på en uge, der starter i begyndelsen af sidste måned.
  • 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 bruge TIMESERIES til den i stedet for GROUP BY.

Det følgende eksempel sammenligner nettoomsætningen i den foregående måned med den samme måned i forrige år:

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

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:

Liste over operatorer for relative datointervaller for ShopifyQL, f.eks. forrige periode eller forrige år.
Operator for relativt datointervalBeskrivelse
previous_periodEn periode før basisdatointervallet.
previous_yearEt år før basisdatointervallet.
previous_quarterEt kvartal før basisdatointervallet.
previous_monthEn måned før basisdatointervallet.
previous_weekEn uge før basisdatointervallet.
previous_dayEn dag før basisdatointervallet.
previous_hourEn time før basisdatointervallet.
previous_minuteEt minut før basisdatointervallet.
previous_secondEt 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:

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

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.

Eksempel på TIMESERIES og rækkefølgen af kolonner, når ORDER BY er til stede ved hjælp af ShopifyQL.
TIMESERIESORDER BYResultat
Til stedeIkke til stedeResultaterne er sorteret efter dimensionen TIMESERIES.
Til stedeTil stedeResultaterne er sorteret efter tidsmålet TIMESERIES og derefter dimensionen ORDER BY.
Ikke til stedeTil stedeResultaterne er sorteret efter dimensionen ORDER BY.
Ikke til stedeIkke til stedeResultaterne 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:

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

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

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 (").

FROM sales
SHOW total_sales AS "My Total Sales"

Andre ShopifyQL-funktioner og -operatorer

ShopifyQL indeholder følgende yderligere operatorer og funktioner:

Matematiske operatorer

ShopifyQL tillader algoritmiske handlinger med parametrene i dine data. Følgende matematiske operatorer er tilgængelige:

Liste over operatorer, der anvender shopifyQL-foranstaltninger, herunder plus og minus.
Matematiske operatorerBeskrivelse
+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.

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

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:

Liste over understøttede ShopifyQL-funktioner, som f.eks. trimning og afrunding.
FunktionsoperatorBeskrivelse
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:
  • 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
*/
Kan du ikke finde de svar, du leder efter? Vi er her for at hjælpe.