Bruke ShopifyQL i Notebooks
ShopifyQL er Shopifys spørringsspråk utviklet for handel. Spørringsspråk brukes til å be om og hente data fra databaser. Du kan bruke ShopifyQL med Shopifys Notebooks-app for å utforske din egen bedriftsdatabase og hente data som gir deg en dypere forståelse av virksomheten.
For en full liste over tilgjengelige verdier og dimensjoner som kan brukes i ShopifyQL Notebook-spørringer kan du se Bestillinger-skjemaet og Produkter-skjemaet.
ShopifyQL-oversikt
Butikkens data lagres i databasetabeller, strukturert i definerte kolonner og rader. Kolonnene definerer hvilken type informasjon de inneholder, som salg, og rader angir den faktiske verdien for datatypen, for eksempel 2450 USD i salg.
For å hente ut 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 svar. Et spørringsspråk, som ShopifyQL, er en standardisert måte å konstruere et slikt spørsmål på. En spørring består av søkeord og 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 et svar.
Dette er et eksempel på ShopifyQL-syntaks, skrevet som en spørring. Søkeordene er i fet tekst, og tilhørende parametere er i krøllparenteser. Parameterne som vises her er plassholdere:
FROM { table_name }
SHOW { column1, column2, ... }
GROUP BY { dimension | date_group }
WHERE { condition }
SINCE { date_offset }
UNTIL { date_offset }
ORDER BY { column } DESC
LIMIT { count }
Ordliste over begreper
Periode | Definisjon |
---|---|
Mål | En 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økeord | ShopifyQL-syntaks som fungerer som en kommando for å rette spørringen. |
Metrisk | En kvantitativ måling av data. Vanlige eksempler på måleverdier inkluderer totalomsetning, antall bestillinger og bruttofortjeneste. |
Parameter | ShopifyQL-syntaks som identifiserer databaseelementene eller detaljene som skal inkluderes i spørringen. |
Referansetabell for søkeord
Dette er søkeordene du kan bruke for å skrive spørringen:
Søkeord | Funksjonell bruk |
---|---|
FROM | Angir hvilken datasettabell du vil hente data fra. |
SHOW | Velger hvilke kolonner du vil hente ut fra datasettabellen. |
VISUALIZE | Viser dataene i et linje- eller søylediagram. |
GROUP BY | Grupperer de uthentede dataene i en dimensjon eller tidsdimensjoner. |
WHERE | Definerer betingelsen(e) radene må oppfylle for å bli valgt. |
SINCE | Viser data siden et angitt tidspunkt i fortiden. |
UNTIL | Viser data inntil et bestemt tidspunkt i fortiden. |
DURING | Viser data siden et angitt tidspunkt i fortiden. |
COMPARE TO | Viser data inntil et bestemt tidspunkt i fortiden. |
ORDER BY | Angir hvilken kolonne dataene skal sorteres etter. |
LIMIT | Begrenser antall rader data som vises. |
AS | Endrer navnet på en kolonne til et navn du velger. |
Skrive ShopifyQL-spørringer
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.
Grunnleggende om ShopifyQL: FROM og SHOW
Det krever bare to søkeord for å opprette den enkleste ShopifyQL-spørringen: FROM og SHOW, skrevet i den rekkefølgen. FROM, etterfulgt av et parameter med tabellnavn, angir hvilken tabell du vil rette spørringen til. SHOW, etterfulgt av et parameter med kolonnenavn, angir kolonnene du ønsker å velge.
Du kan for eksempel liste opp alle produkt-ID-er og tilhørende titler fra sales-tabellen ved å skrive denne spørringen:
FROM products
SHOW product_id, product_title
Gruppere data: GROUP BY
For å segmentere en beregning med en dimensjon, som å gruppere salg etter område, bruker du søkeordet GROUP BY. Søkeordet GROUP BY kan kombineres med alle dimensjonsparametere.
En spørring som grupperer totale fraktpriser etter faktureringsland og -område skrives for eksempel som:
FROM orders
SHOW shipping
GROUP BY billing_country, billing_region
Her er en annen eksempelspørring som bruker en tidsdimensjon for å vise nettosalg per måned:
FROM orders
SHOW net_sales
GROUP BY month
Spørringen ovenfor returnerer ikke måneder uten salg. Hvis du ønsker en spørring som returnerer en fullstendig, uavbrutt tidsperiode kan du bruke modifikatoren ALL:
FROM orders
SHOW net_sales
GROUP BY month ALL
SINCE last_year
UNTIL today
Når du bruker modifikatoren ALL må du også angi SINCE og UNTIL. Merk at modifikatoren ALL bare fungerer med tidsdimensjonen.
Tidsdimensjoner
Dette er tidsdimensjonene som kan brukes til å gruppere data:
Operatør | Funksjonell bruk |
---|---|
time | Gruppering etter time av en kalenderdag. |
dag | Grupperer etter kalenderdag |
uke | Grupperer etter kalenderuke |
måned | Gruppere etter kalendermåned. |
kvartal | Gruppere etter kalenderkvartal. |
år | Gruppere etter kalenderår. |
hour_of_day | Gruppere etter 24 timer (1,2,…,24). |
day_of_week | Gruppere etter ukedag (M,T,W,…,S). |
week_of_year | Gruppere etter uke i året (1,2,…,52). |
Filtrere data: WHERE
Søkeordet WHERE lar deg legge til et dimensjonalt filter på en hel ShopifyQL-spørring.
Hvis du for eksempel ønsker å returnere nettosalg, gruppert etter måned, men bare for et bestemt område, blir spørringen:
FROM orders
SHOW net_sales
GROUP BY month ALL
WHERE billing_region = 'ohio'
SINCE last_year
UNTIL today
Som du kan se i eksempelet ovenfor, kan du filtrere resultatsettet med WHERE-parameteret selv om denne parameteren ikke er inkludert i søkeordene SHOW eller GROUP BY. I dette tilfellet filtreres nettosalg over alle måneder for bestillinger med en fakturaadresse i Ohio, selv om billing_region ikke inkluderes i resultatsettet.
Sammenligningsoperatører
Søkeordet WHERE bruker sammenligningsoperatører for å filtrere data. I eksempelet ovenfor brukes «=» for å spesifisere at spørringen filtrerer på en bestemt verdi, men det finnes også andre tilgjengelige operatører:
Sammenligningsoperatør | Funksjonell bruk |
---|---|
= | 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:
Logisk operatør | Funksjonell bruk |
---|---|
AND | Filtrer for å vise alle rader der betingelsene adskilt med AND er oppfylt. |
OR | Filtrer for å vise alle rader der minst én av betingelsene adskilt med OR er oppfylt. |
NOT | Filtrer for å bare vise rader der betingelsene ikke er oppfylt, som for eksempel 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 der fakturaadressen var i Ohio og det ble brukt en rabatt blir spørringen:
FROM orders
SHOW net_sales
GROUP BY month ALL
WHERE billing_region = 'ohio' AND discounts > 0
SINCE last_year
UNTIL today
Datointervaller: SINCE og UNTIL
Hvis du ønsker å filtrere spørringen etter en dato eller en tidsperiode kan du bruke søkeordene SINCE og UNTIL, og deres tilhørende parametere. Disse søkeordene er unike fordi de bare filtrerer tidsperioder.
Dette er for eksempel en spørring for å finne nettosalg over de siste 12 månedene, i Canada, fra i dag:
FROM orders
SHOW net_sales
GROUP BY month ALL
WHERE billing_country = 'Canada'
SINCE -12m
UNTIL today
Forskyvningsoperatører
Du kan filtrere etter bestemte datoer, eller etter datoforskyvninger. Forskyvningsoperatørene for ShopifyQL er:
Forskyvningsoperatør | Funksjonell bruk |
---|---|
-{#}d | Antall dager fra den dagen spørringen kjøres. |
-{#}w | Antall uker siden fra dagen spørringen kjøres. |
-{#}m | Antall måneder siden fra dagen spørringen kjøres. |
-{#}q | Antall kvartaler siden fra dagen spørringen kjøres. |
-{#}y | Antall år siden fra dagen spørringen kjøres. |
åååå-mm-dd | En bestemt dato. |
i dag | Datoen spørringen kjøres. |
i går | Forrige 24-timersperiode fra tidspunktet spørringen kjøres. |
Filtrering på datointervaller: DURING
Søkeordet DURING forenkler datofiltrering for datointervaller. Du kan bruke søkeordet DURING til å filtrere spørringsresultatene for en kjent tidsperiode, som et kalenderår eller en bestemt måned, eller for datointervaller med ulike datoer hvert år, som Black Friday Cyber Monday. For eksempel:
FROM orders
SHOW sum(net_sales)
GROUP BY day ALL
DURING bfcm2021
DURING godtar følgende navngitte operatører for datointervaller:
Datointervalloperatør | Funksjonell bruk |
---|---|
i dag | Datoen spørringen kjøres. |
i går | Forrige 24-timersperiode fra tidspunktet spørringen kjøres. |
this_week | Den gjeldende kalenderuken. |
this_month | Den gjeldende kalendermåneden. |
this_quarter | Gjeldende kalenderkvartal. |
this_year | Inneværende kalenderår. |
last_week | Forrige kalenderuke. |
last_month | Forrige kalendermåned. |
last_quarter | Forrige kalenderkvartal. |
last_year | Forrige kalenderår. |
bfcm2022 | 25. november til 28. november 2022. |
bfcm2021 | 26. til 29. november 2021. |
Sammenligning på tvers av datointervaller: COMPARE TO
Med søkeordet COMPARE TO kan du sammenligne data på tvers av datointervallet i DURING og datointervallet i COMPARE TO. Den godtar de navngitte datointervalloperatørene som er oppført i seksjonen DURING. Operatøren som brukes av COMPARE TO må være samme lengde som den som brukes av DURING. Kombinasjonen DURING this_week COMPARE TO last_week
er for eksempel en gyldig kombinasjon, men DURING this_week COMPARE TO last_month
er ikke gyldig.
Følgende eksempel sammenligner nettosalg under Black Friday Cyber Monday 2022 med Black Friday Cyber Monday 2021.
FROM orders
SHOW sum(net_sales)
GROUP BY day ALL
DURING bfcm2022
COMPARE TO bfcm2021
Sortere data: ORDER BY
Du kan angi hvordan du ønsker at dataene som returneres av spørringen sorteres ved å bruke søkeordet ORDER BY og tilhørende parametere: ASC, for stigende rekkefølge, og DESC, for synkende rekkefølge.
Du kan spesifisere en hvilken som helst beregning eller dimensjon i spørringen i søkeordet ORDER BY, inkludert flere felter.
Denne spørringen returnerer for eksempel nettosalg for hvert faktureringsland og -område, sortert i omvendt alfabetisk rekkefølge etter faktureringsland, og deretter etter faktureringsområde innenfor hvert land.
FROM orders
SHOW net_sales
GROUP BY billing_country, billing_region
SINCE -1y
UNTIL today
ORDER BY billing_country, billing_region DESC
Rekkefølgen du skriver beregninger eller dimensjoner er viktig. Hvis du angir flere verdier for ORDER BY brukes sorteringen for hver enkelt beregning eller dimensjon i den oppgitte rekkefølgen.
Begrens
Søkeordet LIMIT lar deg angi hvor mange rader spørringen skal returnere. Dette er nyttig når du ønsker å forstå hvordan dataene i hver enkelt kolonne ser ut. Du kan også kombinere den med ORDER BY for å skape lister over mest eller minst populære.
Dette eksempelet bruker LIMIT og ORDER BY til å opprette en liste over de ti bestselgende produktene målt i antall over de siste tre månedene:
FROM products
SHOW net_product_quantity
GROUP BY product_title
SINCE -3m
UNTIL today
ORDER BY net_product_quantity DESC
LIMIT 10
Kartlegge spørringer: VISUALIZE og TYPE
Med søkeordet VISUALIZE kan du skrive en ShopifyQL-spørring som viser data i et linje- eller søylediagram.
Søkeordet TYPE er valgfritt, og må kombineres med «line» eller «bar» slik at spørringen returnerer en visualisering i enten et linje- eller søylediagram. 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 skrift returnerer ShopifyQL tabelldata.
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 orders
VISUALIZE gross_sales
TYPE line
GROUP BY month ALL
SINCE -1y
UNTIL today
Matematiske operatører
ShopifyQL tillater aritmetiske operasjoner med måleverdiene i dataene. Følgende matematiske operatører er tilgjengelige:
Matematisk operatør | Funksjonell bruk |
---|---|
+ | Addisjon av to tall. |
– | Subtraksjon av to tall. |
* | Multiplisering av to tall. |
/ | Deling av to tall. |
Denne spørringen beregner for eksempel bestillingsverdi for hvert område over det siste året. Når du bruker matematiske operatører med måleverdier kan du bruke søkeordet AS for å tilordne et nytt navn til den nye måleverdien.
FROM orders
SHOW (net_sales + returns) AS order_value, orders, (net_sales + returns)/orders AS sales_per_order
GROUP BY billing_region
SINCE -1y
UNTIL today
Funksjoner
ShopifyQL-funksjoner lar deg aggregere kolonner, på samme måte som pivottabeller i Microsoft Excel. Ved å aggregere kolonner kombinerer du dem for å skape en ny verdi. Følgende funksjonsoperatører er tilgjengelige i den gjeldende versjonen av ShopifyQL:
Funksjonsoperatør | Funksjonell bruk |
---|---|
count() | Antall forekomster i resultatsettet. |
sum() | Summeringen av verdier i resultatsettet. |
min() | Minimumsverdien i resultatsettet. |
max() | Maksimumsverdi i resultatsettet. |
avg() | Gjennomsnittlig verdi i resultatsettet. |
Funksjonene sum
, min
, max
og avg
kan bare brukes med numeriske verdier, mens count
kan brukes til å telle ulike forekomster av dimensjonsattributter. Du kan ikke bruke aggregerte felt som argumenter i funksjonene. Aggregerte felter slutter på _sum
, _count
eller _percent
.
Denne spørringen returnerer for eksempel en feil, fordi total_sales allerede er aggregert:
FROM orders
SHOW sum(total_sales)
Her er en gyldig spørring som blander aggregerte felter med aggregerte funksjoner:
FROM orders
SHOW average_order_value, sum(gross_sales)
GROUP BY billing_region
SINCE 2021-01-01
UNTIL 2021-12-31
Denne spørringen returnerer den aggregerte summen for gjennomsnittlig bestillingsverdi, bruttosalgssummen som et resultat av sum
-funksjonen. Disse beregningene brytes ned på fakturaområde for alle bestillinger som er lagt inn i 2021.
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 orders
SHOW average_order_value, sum(gross_sales)
-- the line below has been commented out and will not run
-- GROUP BY billing_region
WHERE billing_country = 'United States'
/*
this line and the two lines below it have been commented out and will not run
SINCE 2021-01-01
UNTIL 2021-12-31
*/