Bruke redigeringsprogrammet for ShopifyQL-spørringer

Du kan bruke ShopifyQL med nye Shopify Analytics for å utforske databasen til din egen virksomhet og hente data som gir deg en mer dyptgående forståelse av virksomheten.

ShopifyQL, eller Shopify Query Language, er Shopifys spørringsspråk som er utviklet for handel. Spørringsspråk brukes til å søke etter og hente data fra databaser. Butikkdata er lagret i databasetabeller, som er strukturert i definerte kolonner og rader. Kolonner definerer hvilken type informasjon de inneholder, som for eksempel salg, mens rader spesifiserer den faktiske verdien til datatypen, som for eksempel USD 2450 i salg.

For å hente data i et meningsfylt format må det sendes en spørring til databasen. En spørring er et spørsmål som ber om bestemte data som et svar, og består av søkeord og deres tilhørende parametere. Kombinasjonen av flere søkeord med bestemte parametere utgjør spørringen. Når du har bygget spørringen, kan du kjøre den og motta en rapport.

Ordliste over begreper

Definisjoner av ShopifyQL-begreper, som for eksempel dimensjon, søkeord og operatør.
PeriodeDefinisjon
MålEn attributt som segmenterer data slik at de kan sorteres og presenteres tydeligere. Vanlige eksempler på dimensjoner er tid, produkter og steder. Dimensjoner brukes som parametere i ShopifyQL.
SøkeordShopifyQL-syntaks som fungerer som en kommando for å rette spørringen.
MetriskEn kvantitativ måling av data. Vanlige eksempler på måleverdier inkluderer totalomsetning, antall bestillinger og bruttofortjeneste.
ParameterShopifyQL-syntaks som identifiserer databaseelementene eller detaljene som skal inkluderes i spørringen.
OperatørEt reservert ord eller tegn som brukes som en del av en spørring. Eksempler inkluderer STARTS WITH, >= eller last_week.

ShopifyQL-syntaks

Du må oppfylle følgende krav når du utformer en gyldig rapportspørring med ShopifyQL:

  • Du kan legge en hel spørring på én linje, eller på flere linjer.
  • Du må minst inkludere søkeordene FROM og SHOW, med deres aktuelle parametere. Alle andre søkeord og parametere er valgfrie.
  • Alle søkeord i en spørring må være inkludert i følgende rekkefølge: 1. FROM 2. SHOW 3. WHERE 4. GROUP BY 5. TIMESERIES 6. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE 7. HAVING 8. SINCE & UNTIL, eller DURING 9. COMPARE TO & valgfritt UNTIL 10. ORDER BY 11. LIMIT 12. VISUALIZE & TYPE

Dette er et eksempel på ShopifyQL, skrevet som en spørring med riktig syntaks. Søkeordene er i fet tekst, tilhørende parametere er inkludert med generiske plassholdere, og valgfrie parametere står i parentes:

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økeord

ShopifyQL-spørringer kan variere fra grunnleggende, for datainnsikt på høyt nivå, til omfattende, for detaljert innsikt. Hvert søkeord har en bestemt funksjon som bygger opp spørringen.

Liste over ShopifyQL-søkeord og deres beskrivelser.
SøkeordBeskrivelse
FROMAngir hvilken datasettabell du vil hente data fra.
SHOWVelger hvilke kolonner du vil hente ut fra datasettabellen.
WHEREDefinerer betingelsen(e) radene må oppfylle for å bli valgt.
GROUP BYGrupperer de uthentede dataene i en dimensjon eller tidsdimensjoner.
TIMESERIESSkiller gruppering på tidsdimensjoner og tilbakefyller datoer i en spørring.
WITHEndrer adferden til bestemte ShopifyQL-søkeord.
HAVINGFiltrerer resultatene fra en spørring etter at de er gruppert.
SINCEViser data siden et bestemt tidspunkt i fortiden. Kombineres ofte med UNTIL.
UNTILViser data frem til et bestemt tidspunkt i fortiden. Kombineres ofte med SINCE eller COMPARE TO.
DURINGViser data for en bestemt tidsperiode i fortiden.
COMPARE TOViser data for sammenligning til et bestemt tidspunkt i fortiden.
ORDER BYAngir hvilken kolonne dataene skal sorteres etter.
LIMITBegrenser antall rader data som vises.
VISUALIZEViser dataene i et linje- eller stolpediagram. Du kan angi hvilken visualisering du ønsker med TYPE.
ASEt valgfritt søkeord som omdøper en kolonne til ditt ønskede navn.
### FROM og SHOW {#from-and-show}

Det krever bare to søkeord for å opprette den enkleste ShopifyQL-spørringen: FROM og SHOW, skrevet i denne rekkefølgen. FROM, etterfulgt av ett eller flere tabellnavn-parametere spesifiserer hvilke tabeller du vil spørre mot. SHOW, etterfulgt av ett eller flere parametere for kolonnenavn spesifiserer hvilke kolonner du vil velge.

SHOW kan brukes for å spesifisere rekkefølgen beregninger og dimensjoner returneres i rapporten.

Du kan for eksempel returnere summen for totalomsetning ved å skrive denne spørringen:

FROM sales
SHOW total_sales

WHERE

Med søkeordet WHERE kan du legge til et dimensjonalt filter for en hel ShopifyQL-spørring. Filteret kan endres av både sammenligningsoperatører (som for eksempel større enn >), logiske operatører (som for eksempel AND eller NOT) og delvise streng- og matrisesamsvar (som for eksempel STARTS WITH og CONTAINS).

WHERE betingelser må oppfylle følgende krav:

  • Verdier må oppgis i enkle anførselstegn ('), ikke doble anførselstegn (").
  • Betingelser kan ikke inneholde aritmetikk.
  • Betingelser kan bare henvise til en dimensjon, ikke til en beregning.

Hvis du for eksempel ønsker å returnere totalomsetning, men filtrert basert på faktureringsland, blir spørringen:

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

Som i eksempelet overfor kan du filtrere resultatsettet med parameteret WHERE selv når parameteret ikke er inkludert i søkeordet SHOW. I dette tilfellet filtreres totalomsetningen etter bestillinger fra Canada, selv om billing_country ikke er inkludert i resultatsettet.

Sammenligningsoperatører

Søkeordet WHERE bruker sammenligningsoperatører for å filtrere data. I eksempelet ovenfor ble = brukt for å spesifisere at spørringen filtrerer etter en bestemt verdi, men det er imidlertid andre tilgjengelige operatører:

Liste over ShopifyQL-sammenligningsoperatører, som for eksempel større enn eller tilsvarer.
SammenligningsoperatørBeskrivelse
=er lik
!=er ikke lik
<mindre enn
>større enn
<=mindre enn eller lik
>=større enn eller lik
#### Logiske operatører

For å filtrere dataene ytterligere kan du legge til logiske operatører i spørringen. De logiske operatørene for ShopifyQL er:

Liste over logiske ShopifyQL-operatører, som for eksempel AND, OR og NOT.
Logisk operatørBeskrivelse
ANDFiltrer for å inkludere alle rader der betingelsene som er adskilt med AND er oppfylt.
ORFiltrer for å inkludere alle rader der én av betingelsene som er adskilt med OR er oppfylt.
NOTFiltrer for å bare inkludere rader der betingelsene ikke er oppfylt, som rader som ikke inneholder den angitte verdien.

Du kan bruke flere filtre med søkeordet WHERE ved å legge til logiske operatører.

For å bygge ut eksempelspørringen og få en månedlig gruppering av nettosalg for alle bestillinger med tørkede ferskener der fakturaadressen er i Canada og det er brukt en rabatt, blir spørringen:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country = 'Canada' AND product_title = 'Dried Peaches' AND is_discounted_sale = true
GROUP BY product_title, product_type, product_vendor

GROUP BY

For å segmentere en beregning på en dimensjon, for eksempel gruppering av salg etter område, bruker du søkeordet GROUP BY. Søkeordet GROUP BY kan kombineres med alle dimensjonsparametere.

En spørring som grupperer totalomsetning etter fakturaadresse – land og -område skrives for eksempel som:

FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region

Her er en annen eksempelspørring som bruker en tidsdimensjon for å vise totalsalg per måned:

FROM sales
SHOW total_sales
GROUP BY month

Spørringen ovenfor returnerer ikke måneder du ikke har hatt noen salg. Hvis du ønsker at en spørring skal returnere en fullstendig og uavbrutt tidsperiode, kan du bruke søkeordet TIMESERIES.

FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today

Tidsdimensjoner

Dette er tidsdimensjonene som kan brukes til å gruppere data:

Liste over ShopifyQL-tidsdimensjoner, som for eksempel sekund, minutt eller ukedag.
OperatørBeskrivelse
secondGruppering etter sekund i en time.
minuteGruppering etter minutt i en time.
hourGruppering etter time av en kalenderdag.
dayGrupperer etter kalenderdag
weekGrupperer etter kalenderuke
monthGruppere etter kalendermåned.
quarterGruppere etter kalenderkvartal.
yearGruppere etter kalenderår.
hour_of_dayNullbasert gruppering etter 24 timer (0, 1, ..., 23).
day_of_weekNullbasert gruppering etter ukedag (0, 1, ... , 6).
week_of_yearGruppere etter uke i året (1, 2, …, 52).
month_of_yearGruppering etter måned i året (1, 2, …, 12).
### TIMESERIES

Du kan bruke søkeordet TIMESERIES når du ønsker å skille grupperingen på tidsdimensjoner, se beregninger over tid og tilbakefylle datoer i en spørring for å utforme et tidsseriediagram der det ikke finnes data.

I dette eksempelet tilbakefyller du manglende data for totalomsetning over de seneste 15 dagene:

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

TIMESERIES og rekkefølgen på kolonner

Avhengig av hvorvidt TIMESERIES er oppgitt og finnes i verdiene GROUP BY eller SHOW, kan rekkefølgen på kolonner endre seg.

Eksempler på TIMESERIES og hvordan rekkefølgen av kolonner vises med GROUP BY eller SHOW i ShopifyQL.
TIMESERIESSHOWGROUP BYResultat
OppgittFinnes ikkeFinnes ikke TIMESERIES er den første dimensjonen.
OppgittFinnes ikkeNåtidPosisjonen for tidsdimensjoner er definert av posisjonen i GROUP BY.
OppgittNåtidNåtidPosisjonen for tidsdimensjoner er definert av posisjonen i SHOW.
Ikke oppgittFinnes ikkeNåtidPosisjonen for tidsdimensjoner er definert av posisjonen i GROUP BY. Dataene fylles ikke inn.
Ikke oppgittNåtidNåtidPosisjonen for tidsdimensjoner er definert av posisjonen i SHOW. Dataene fylles ikke inn.
Ikke oppgittNåtidFinnes ikkeUtløser en syntaksfeil fordi SHOW bare kan henvise til dimensjoner som er til stede i GROUP BY.
### HAVING

På samme måte som WHERE kan du bruke søkeordet HAVING for å filtrere resultatene av en spørring etter gruppering. Filteret kan ha én betingelse, men betingelsen kan endres av både sammenligningsoperatører (som for eksempel større enn >) og logiske operatører (som for eksempel AND eller NOT). I motsetning til søkeordet WHERE kan HAVING henvise til aliaser, aggregere funksjoner og gruppere kolonner.

HAVING krever at spørringen inneholder klausulene GROUP BY eller TIMESERIES fordi HAVING filtrerer resultatene av en spørring etter at de er gruppert av GROUP BY eller TIMESERIES.

I dette eksempelet filtrerer du totalomsetningen for hvert produkt med et totalt salg over 1000 og under 5000:

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

WITH

Søkeordet WITH endrer adferden for visse andre ShopifyQL-søkeord. Det er tre tilgjengelige endringer:

  • TOTALS: Gir et overordnet sammendrag av beregninger før de brytes ned på en dimensjon.
  • GROUP_TOTALS: Gir en totalsum for alle undergrupperinger når det er en aggregert gruppe.
  • PERCENT_CHANGE: Legger til en prosentvis endringsberegning for hver sammenligningskolonne i COMPARE TO. Når denne modifikatoren er til stede, legges det til en ny kolonne for hver kolonne med sammenligningsberegninger, som inneholder prosentendringen.

TOTALS

Modifikatoren TOTALS gir et overordnet sammendrag av beregninger før de brytes ned på en annen dimensjon. Når du bruker WITH TOTALS, returnerer spørringen totalsummene som ekstra kolonner i resultatsettet med beregningens navn og «totals» som en del av kolonnenavnet. Hver rad inneholder alle gjeldende totalsummer.

Denne spørringen viser for eksempel totalsummen for totalomsetning:

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

Denne spørringen kan returnere en rapport som dette:

Eksempeltabell i ShopifyQL med salg som bruker WITH TOTALS.
DagBruttosalgNettosalgTotalt antall salg
Sammendrag61524
2024-01-01147
2024-01-02258
2024-01-03369
#### GROUP_TOTALS

Modifikatoren GROUP_TOTALS gir en totalsum for alle undergrupperinger når det er en aggregert gruppe. Når du bruker WITH GROUP_TOTALS, returnerer spørringen totalsummene som ekstra kolonner i resultatsettet med beregningens navn, dimensjonene som summeres og «totals» som en del av kolonnenavnet. Hver rad inneholder alle gjeldende totalsummer.

Denne spørringen inneholder for eksempel en totalsum for totalomsetning etter faktureringsland:

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

Denne spørringen kan returnere en rapport som dette:

Eksempel på ShopifyQL-tabell over salg med bruk av GROUP_TOTALS.
LandKunde-IDTotalt antall salg
Sammendrag (USA + Canada)1
Gruppetotaler for US0
USA11
USAnull-1
Gruppetotaler for Canada1
Canada11
#### PERCENT_CHANGE

Modifikatoren PERCENT_CHANGE legger til en beregning for prosentuell endring for hver sammenligningskolonne når du bruker COMPARE TO. Når du bruker WITH PERCENT_CHANGE, returnerer spørringen den prosentuelle endringen for hver sammenligningsberegning som ekstra kolonner i resultatsettet med beregningens navn og «percent change» som en del av kolonnenavnet.

Formelen som brukes til å beregne prosentuell endring er: (base_column - comparison_column) * 100 / abs(comparison_column)

Denne spørringen bruker for eksempel SINCE og COMPARE TO til å sammenligne nettosalg per dag i forrige måned mot samme måned forrige år, med en kolonne for prosentuell endring:

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

Kolonnene i resultatrapporten inneholder dag, nettosalg, sammenligningsdag, sammenlignende nettosalg og prosentvis endring i nettosalg.

SINCE og UNTIL

Hvis du vil filtrere spørringen etter dato eller en annen tidsperiode, kan du bruke søkeordene SINCE og UNTIL og deres tilhørende parametere. Disse søkeordene er unike fordi de bare filtrerer tidsperioder. Hvis du bruker SINCE og ikke definerer en verdi for UNTIL, vil slutten av tidsperioden som standard være today.

Dette er for eksempel en spørring for å hente nettosalg over de seneste 12 månedene, i Canada, til og med i går:

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

Forskyvningsoperatører

Du kan filtrere etter bestemte datoer, eller etter datoforskyvninger. Forskyvningsoperatørene i ShopifyQL er:

Liste over ShopifyQL-forskyvningsoperatører, som for eksempel forskyvning på sekunder, minutter eller en bestemt dato.
ForskyvningsoperatørBeskrivelse
-{#}sAntall sekunder fra datoen og klokkeslettet spørringen kjøres.
-{#}minAntall minutter fra datoen og klokkeslettet spørringen kjøres.
-{#}hAntall timer fra datoen og klokkeslettet spørringen kjøres.
-{#}dAntall dager fra datoen og klokkeslettet spørringen kjøres.
-{#}wAntall uker fra datoen og klokkeslettet spørringen kjøres.
-{#}mAntall måneder fra datoen og klokkeslettet spørringen kjøres.
-{#}qAntall kvartaler fra datoen og klokkeslettet spørringen kjøres.
-{#}yAntall år fra datoen og klokkeslettet spørringen kjøres.
yyyy-MM-ddEn bestemt dato.
yyyy-MM-ddThh:mm:ssEn bestemt dato og klokkeslett.
#### Datofunksjoner

Du kan bruke følgende funksjoner kombinert med hvilke som helst operatører for datointervall (unntatt bestemte datoer) i SINCE- og UNTIL-erklæringer. Funksjonene «startOf...» avkortes til starten av den tilhørende tidsenheten (minutt, time, dag, uke, måned, kvartal og år) når de brukes med SINCE, og funksjonene «endOf...» avkortes til slutten av den tilhørende tidsenheten når de brukes med UNTIL.

Enheter for datofunksjon og operatørenheter må samsvare for at det skal returneres et gyldig resultat. startOfMonth(-1m) er for eksempel riktig, men startOfMonth(-1d) er ikke riktig.

<tr>
    <td scope="row"><code translate="no">endOfWeek(-{#}w)</code></td>
    <td>Beskjærer operatøren for datointervall til slutten av måluken.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">startOfMonth(-{#}m)</code></td>
    <td>Beskjærer operatøren for datointervall til starten av målmåneden.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">endOfMonth(-{#}m)</code></td>
    <td>Beskjærer operatøren for datointervall til slutten av målmåneden.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">startOfQuarter(-{#}q)</code></td>
    <td>Beskjærer operatøren for datointervall til starten av målkvartalet.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">endOfQuarter(-{#}q)</code></td>
    <td>Beskjærer operatøren for datointervall til slutten av målkvartalet.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">startOfYear(-{#}y)</code></td>
    <td>Beskjærer operatøren for datointervall til starten av målåret.</td>
 </tr>
       <tr>
    <td scope="row"><code translate="no">endOfYear(-{#}y)</code></td>
    <td>Beskjærer operatøren for datointervall til slutten av målåret.</td>
 </tr>
Liste over ShopifyQL-datofunksjoner, som for eksempel slutt av dag eller start av kvartal.
DatofunksjonBeskrivelse
nowDatoen og klokkeslettet spørringen kjøres.
startOfMinute(-{#}min)Avkorter operatøren for datointervall til starten av målminuttet.
endOfMinute(-{#}min)Beskjærer operatøren for datointervall til slutten av målminuttet.
startOfHour(-{#}h)Beskjærer operatøren for datointervall til starten av måltimen.
endOfHour(-{#}h)Avkorter operatøren for datointervall til slutten av måltimen.
startOfDay(-{#}d)Beskjærer operatøren for datointervall til starten av måldagen.
endOfDay(-{#}d)Beskjærer operatøren for datointervall til slutten av måldagen.
startOfWeek(-{#}w)Beskjærer operatøren for datointervall til starten av måluken.

Hvis i dag for eksempel er 8. november 2022, kan du bruke følgende spørring til å returnere bruttosalg fra 1. januar 2020 til 31. oktober 2022:

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

DURING

Søkeordet DURING forenkler datofiltrering for datointervaller, og erstatter bruken av SINCE og UNTIL. Du kan bruke søkeordet DURING til å filtrere spørringsresultater for en kjent tidsperiode, som for eksempel et kalenderår eller en bestemt måned, eller for datointervall som har ulike datoer hvert år, som for eksempel Black Friday Cyber Monday. For eksempel:

FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021

Navngitte operatører for datointervall

DURING godtar følgende navngitte operatører for datointervall:

Liste over navngitte operatører for datointervall i ShopifyQL, som for eksempel today, yesterday eller this week.
Navngitt operatør for datointervallBeskrivelse
todayDatoen spørringen kjøres.
yesterdayForrige 24-timersperiode fra tidspunktet spørringen kjøres.
this_weekDen gjeldende kalenderuken.
this_monthDen gjeldende kalendermåneden.
this_quarterGjeldende kalenderkvartal.
this_yearInneværende kalenderår.
last_weekForrige kalenderuke.
last_monthForrige kalendermåned.
last_quarterForrige kalenderkvartal.
last_yearForrige kalenderår.
bfcmYYYYBlack Friday Cyber Monday-intervallet for det angitte året. bfcm2022 returnerer for eksempel resultater for 25.–28. november 2022.

COMPARE TO

Med søkeordet COMPARE TO kan du sammenligne data på tvers av datointervallet i SINCE og UNTIL eller DURING, og i COMPARE TO.

Du kan bruke søkeordet COMPARE TO med følgende typer parametere:

  • Absolutte datoer, som for eksempel 2023-01-01: Inkluderer beregninger for den angitte perioden og sammenligningsberegninger for samme periode på den absolutte datoen.

  • Navngitte datoer, som for eksempel last_week: Inkluderer beregninger for den angitte perioden og sammenligningsberegninger for samme periode på den navngitte datoen. - Operatøren som brukes av COMPARE TO trenger ikke være av samme lengde som den som brukes av DURING. Hvis det ikke er oppgitt noen verdi for UNTIL, beregnes tidsperioden tilsvarende verdien som er angitt i DURING. DURING this_week COMPARE TO last_month sammenligner for eksempel data for denne uken med en én ukes periode som starter ved utgangen av forrige måned.

  • Forskyvningsdatoer, som for eksempel -3q: Inkluderer beregninger for den angitte perioden og sammenligningsberegninger for samme periode på den relative datoen.

  • Flere datosammenligninger, som for eksempel -1y, -2y: Sammenlign data fra et bestemt datointervall med flere andre datointervall. Dette kan være nyttig når du ønsker å spore endringer over flere perioder.

  • Hvis du bruker en datodimensjon i en spørring med COMPARE TO, må du bruke TIMESERIES, og ikke GROUP BY.

Følgende eksempel sammenligner nettosalg i forrige måned med samme måned forrige år:

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

Relative operatører for datointervall

Relative operatører returnerer samme tidslengde som grunndatointervallet, forskyvet tilbake til den angitte perioden. I tillegg til navngitte operatører for datointervall godtar COMPARE TO følgende relative operatører:

Liste over relative operatører datointervall i ShopifyQL, som for eksempel forrige periode eller forrige år.
Relativ operatør for datointervallBeskrivelse
previous_periodÉn periode før grunndatointervallet.
previous_yearEtt år før grunndatointervallet.
previous_quarterEtt kvartal før grunndatointervallet.
previous_monthÉn måned før grunndatointervallet.
previous_weekÉn uke før grunndatointervallet.
previous_dayÉn dag før grunndatointervallet.
previous_hourÉn time før grunndatointervallet.
previous_minuteEtt minutt før grunndatointervallet.
previous_secondEtt sekund før grunndatointervallet.
### ORDER BY {#order-by}

Du kan spesifisere hvordan du ønsker å sortere dataene som returneres av spørringen med søkeordet ORDER BY og tilhørende parametere: ASC for stigende rekkefølge, og DESC for synkende rekkefølge.

Du kan spesifisere alle beregninger eller dimensjoner du inkluderer i spørringen i søkeordet ORDER BY, inkludert flere felter.

Denne spørringen returnerer for eksempel nettosalg for alle produkter og varianter det siste året. Resultatene sorteres først i alfabetisk rekkefølge etter produkttittel, og deretter i omvendt alfabetisk rekkefølge etter produkttype:

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

Rekkefølgen du skriver beregninger eller dimensjoner er viktig. Hvis du angir flere verdier for ORDER BY, gjelder sorteringen hver beregning eller dimensjon i oppgitt rekkefølge.

TIMESERIES og rekkefølgen på kolonner

Avhengig av om spørringen inkluderer TIMESERIES og ORDER BY kan rekkefølgen for kolonner endre seg.

Eksempel på TIMESERIES og rekkefølgen av kolonner når ORDER BY brukes med ShopifyQL.
TIMESERIESORDER BYResultat
NåtidFinnes ikkeResultatene sorteres etter dimensjonen TIMESERIES.
NåtidNåtidResultatene sorteres etter tidsdimensjonen TIMESERIES, og deretter etter dimensjonen ORDER BY.
Finnes ikkeNåtidResultatene sorteres etter dimensjonen ORDER BY.
Finnes ikkeFinnes ikkeResultatene sorteres etter den første SHOW-kolonnen.
### LIMIT {#limit}

Med søkeordet LIMIT kan du spesifisere et maksimalt antall rader spørringen skal returnere. Dette er nyttig når du ønsker en forståelse av hvordan data i hver kolonne vises, eller for større rapporter der spørringene kan bruke lengre tid på å returnere verdier. Du kan kombinere LIMIT med ORDER BY for å opprette topp- og bunnlister.

Hvis du ikke spesifiserer en verdi for LIMIT, vil spørringen som standard returnere 1000 rader.

Du kan også bruke det valgfrie parameteret { OFFSET # } for å hoppe over et bestemt antall rader før raddata returneres. Den resulterende frasen formateres på denne måten: LIMIT 15 { OFFSET 5 }.

Dette eksempelet bruker LIMIT og ORDER BY til å opprette en liste over de ti mestselgende produktene i løpet av de tre seneste månedene:

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

Med søkeordet VISUALIZE kan du skrive en ShopifyQL-spørring som viser data i en grafisk visualisering. Støttede visualiseringer inneholder følgende verdier:

  • 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økeordet TYPE er valgfritt, og må kombineres med én enkelt visualiseringstype. Hvis TYPE ikke er inkludert i spørringen, avgjør ShopifyQL automatisk hvilken visualisering som passer best til spørringen. Hvis spørringen ikke kan visualiseres som den er skrevet, returnerer ShopifyQL tabelldata.

VISUALIZE godtar også det valgfrie søkeordet LIMIT, der parameteret er et begrenset antall datapunkt som skal gjengis.

Du kan for eksempel visualisere salgstrender over det siste året etter måned med en trendlinje. Denne spørringen returnerer et tidsseriediagram som viser bruttosalg per måned over det siste året. Bruttosalget presenteres som en enkeltlinje, der x-aksen er merket som måned og y-aksen er merket som bruttosalg:

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

AS

Søkeordet AS er et valgfritt nøkkelord som lar deg gi nytt navn (eller alias for) en kolonne eller et uttrykk.

AS godtar bare ett enkelt parameter. Hvis aliaset har et mellomrom i navnet, må aliaset omgis av doble anførselstegn (").

FROM sales
SHOW total_sales AS "My Total Sales"

Andre ShopifyQL-operatorer

ShopifyQL inkluderer følgende andre operatører:

Matematiske operatører

ShopifyQL tillater aritmetiske operasjoner med måleverdiene i dataene. Følgende matematiske operatører er tilgjengelige:

Liste over matematiske operatører i ShopifyQL, inkludert pluss og minus.
Matematisk operatørBeskrivelse
+Addisjon av to tall.
Subtraksjon av to tall.
*Multiplisering av to tall.
/Deling av to tall.

For eksempel beregner denne spørringen bestillingsverdi for hvert område det siste året. Når du bruker matematiske operatører med beregninger, kan du bruke søkeordet AS for å tilordne det nye navnet til den nye beregningen. Vær oppmerksom på at det er begrensninger for bruken av matematiske uttrykk.

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

Implisitte sammenføyninger

En sammenføyning lar deg se beregninger fra forskjellige domene sammen, side ved side. Sammenføyninger gjøres implisitt og intelligent i ShopifyQL.

ShopifyQL har følgende tilkoblingsmuligheter:

  • ShopifyQL tillater sammenføyninger av dimensjonsfelt når det er én enkelt FROM-tabell i spørringen.
  • Automatisk venstresammenføyning på dimensjonsfelt.
  • ShopifyQL tillater sammenføyninger med flere fakta (når det er flere FROM-tabeller i spørringene).
  • Automatisk full sammenføyning på flerfakta-sammenføyninger, som støtter et hvilket som helst antall tabeller eller skjemaer og gruppert etter dimensjoner.
  • Beregninger i sammenføyninger med flere fakta kan bruke matematikk.

Shopify QL har følgende sammenføyningsbegrensninger:

  • Sammenføyningsfeltet må ha samme navn i alle sammenkoblede skjemaer.
  • Sammenføyningsfeltet må være i GROUP BY.
  • Sammenføyningsfeltet kan ikke bruke matematikk.
  • FROM er nødvendig for at flerfakta-sammenføyninger skal fungere.
  • I en flerfakta-sammenføyning må hver GROUP BY være i alle skjemaer og regnes som et felt som det skal sammenføyes etter.

For eksempel bruker denne spørringen en sammenføyning med flere fakta:

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

Delvis streng- og matrisematching

Du kan bruke følgende operatorer for delvis streng- og matrisematching:

Liste over operatorer som samsvarer med delvis streng og matrise i ShopifyQL.
OperatørBeskrivelse
STARTS WITHReturner alle rader der en kolonne starter med et prefiks.
ENDS WITHReturner alle rader der en kolonne ender med et suffiks.
CONTAINSReturner alle rader der en kolonne inneholder en del av en streng, eller et element i en matrise.

Noen eksempler på delvis strengmatching ved bruk av operatorer er inkluderer følgende spørringer:

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

Operatoren CONTAINS kan brukes til å matche elementer i matriser, inkludert heltall, streng og desimaler. Denne matchingen skiller ikke på store og små bokstaver. Noen eksempler på matrisesamsvar med CONTAINS er følgende søk:

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'

Kommentarer

Du kan bruke kommentarer til å forklare seksjoner av ShopifyQL-kommandoer, eller til å forhindre kjøring av en ShopifyQL-kommando. All tekst i en kommentar ignoreres ved kjøring.

Kommentarer med én linje starter med -- og avslutter der linjen slutter.

Kommentarer med flere linjer starter med /* og slutter med */.

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
*/
Finner du ikke svarene du leter etter? Vi er her for å hjelpe deg.