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
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. |
Operatør | Et 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
ogSHOW
, 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
, ellerDURING
9.COMPARE TO
& valgfrittUNTIL
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.
Søkeord | Beskrivelse |
---|---|
FROM | Angir hvilken datasettabell du vil hente data fra. |
SHOW | Velger hvilke kolonner du vil hente ut fra datasettabellen. |
WHERE | Definerer betingelsen(e) radene må oppfylle for å bli valgt. |
GROUP BY | Grupperer de uthentede dataene i en dimensjon eller tidsdimensjoner. |
TIMESERIES | Skiller gruppering på tidsdimensjoner og tilbakefyller datoer i en spørring. |
WITH | Endrer adferden til bestemte ShopifyQL-søkeord. |
HAVING | Filtrerer resultatene fra en spørring etter at de er gruppert. |
SINCE | Viser data siden et bestemt tidspunkt i fortiden. Kombineres ofte med UNTIL . |
UNTIL | Viser data frem til et bestemt tidspunkt i fortiden. Kombineres ofte med SINCE eller COMPARE TO . |
DURING | Viser data for en bestemt tidsperiode i fortiden. |
COMPARE TO | Viser data for sammenligning til et bestemt tidspunkt i fortiden. |
ORDER BY | Angir hvilken kolonne dataene skal sorteres etter. |
LIMIT | Begrenser antall rader data som vises. |
VISUALIZE | Viser dataene i et linje- eller stolpediagram. Du kan angi hvilken visualisering du ønsker med TYPE . |
AS | Et valgfritt søkeord som omdøper en kolonne til ditt ønskede navn. |
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:
Sammenligningsoperatør | Beskrivelse |
---|---|
= | er lik |
!= | er ikke lik |
< | mindre enn |
> | større enn |
<= | mindre enn eller lik |
>= | større enn eller lik |
For å filtrere dataene ytterligere kan du legge til logiske operatører i spørringen. De logiske operatørene for ShopifyQL er:
Logisk operatør | Beskrivelse |
---|---|
AND | Filtrer for å inkludere alle rader der betingelsene som er adskilt med AND er oppfylt. |
OR | Filtrer for å inkludere alle rader der én av betingelsene som er adskilt med OR er oppfylt. |
NOT | Filtrer 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:
Operatør | Beskrivelse |
---|---|
second | Gruppering etter sekund i en time. |
minute | Gruppering etter minutt i en time. |
hour | Gruppering etter time av en kalenderdag. |
day | Grupperer etter kalenderdag |
week | Grupperer etter kalenderuke |
month | Gruppere etter kalendermåned. |
quarter | Gruppere etter kalenderkvartal. |
year | Gruppere etter kalenderår. |
hour_of_day | Nullbasert gruppering etter 24 timer (0, 1, ..., 23). |
day_of_week | Nullbasert gruppering etter ukedag (0, 1, ... , 6). |
week_of_year | Gruppere etter uke i året (1, 2, …, 52). |
month_of_year | Gruppering etter måned i året (1, 2, …, 12). |
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.
TIMESERIES | SHOW | GROUP BY | Resultat |
---|---|---|---|
Oppgitt | Finnes ikke | Finnes ikke |
TIMESERIES er den første dimensjonen. |
Oppgitt | Finnes ikke | Nåtid | Posisjonen for tidsdimensjoner er definert av posisjonen i GROUP BY . |
Oppgitt | Nåtid | Nåtid | Posisjonen for tidsdimensjoner er definert av posisjonen i SHOW . |
Ikke oppgitt | Finnes ikke | Nåtid | Posisjonen for tidsdimensjoner er definert av posisjonen i GROUP BY . Dataene fylles ikke inn. |
Ikke oppgitt | Nåtid | Nåtid | Posisjonen for tidsdimensjoner er definert av posisjonen i SHOW . Dataene fylles ikke inn. |
Ikke oppgitt | Nåtid | Finnes ikke | Utløser en syntaksfeil fordi SHOW bare kan henvise til dimensjoner som er til stede i GROUP BY . |
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 iCOMPARE 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:
Dag | Bruttosalg | Nettosalg | Totalt antall salg |
---|---|---|---|
Sammendrag | 6 | 15 | 24 |
2024-01-01 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
2024-01-03 | 3 | 6 | 9 |
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:
Land | Kunde-ID | Totalt antall salg |
---|---|---|
Sammendrag (USA + Canada) | – | 1 |
Gruppetotaler for US | – | 0 |
USA | 1 | 1 |
USA | null | -1 |
Gruppetotaler for Canada | – | 1 |
Canada | 1 | 1 |
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:
Forskyvningsoperatør | Beskrivelse |
---|---|
-{#}s | Antall sekunder fra datoen og klokkeslettet spørringen kjøres. |
-{#}min | Antall minutter fra datoen og klokkeslettet spørringen kjøres. |
-{#}h | Antall timer fra datoen og klokkeslettet spørringen kjøres. |
-{#}d | Antall dager fra datoen og klokkeslettet spørringen kjøres. |
-{#}w | Antall uker fra datoen og klokkeslettet spørringen kjøres. |
-{#}m | Antall måneder fra datoen og klokkeslettet spørringen kjøres. |
-{#}q | Antall kvartaler fra datoen og klokkeslettet spørringen kjøres. |
-{#}y | Antall år fra datoen og klokkeslettet spørringen kjøres. |
yyyy-MM-dd | En bestemt dato. |
yyyy-MM-ddThh:mm:ss | En bestemt dato og klokkeslett. |
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.
Datofunksjon | Beskrivelse |
---|---|
now | Datoen 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:
Navngitt operatør for datointervall | Beskrivelse |
---|---|
today | Datoen spørringen kjøres. |
yesterday | 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. |
bfcmYYYY | Black 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 avCOMPARE TO
trenger ikke være av samme lengde som den som brukes avDURING
. Hvis det ikke er oppgitt noen verdi forUNTIL
, beregnes tidsperioden tilsvarende verdien som er angitt iDURING
.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 brukeTIMESERIES
, og ikkeGROUP 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:
Relativ operatør for datointervall | Beskrivelse |
---|---|
previous_period | Én periode før grunndatointervallet. |
previous_year | Ett år før grunndatointervallet. |
previous_quarter | Ett 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_minute | Ett minutt før grunndatointervallet. |
previous_second | Ett sekund før grunndatointervallet. |
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.
TIMESERIES | ORDER BY | Resultat |
---|---|---|
Nåtid | Finnes ikke | Resultatene sorteres etter dimensjonen TIMESERIES . |
Nåtid | Nåtid | Resultatene sorteres etter tidsdimensjonen TIMESERIES , og deretter etter dimensjonen ORDER BY . |
Finnes ikke | Nåtid | Resultatene sorteres etter dimensjonen ORDER BY . |
Finnes ikke | Finnes ikke | Resultatene sorteres etter den første SHOW -kolonnen. |
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, som for eksempel
+
eller/
- Implisitte sammenføyninger
- Delvise streng- og matrisesamsvar, som for eksempel
STARTS WITH
ogCONTAINS
- Kommentarer
Matematiske operatører
ShopifyQL tillater aritmetiske operasjoner med måleverdiene i dataene. Følgende matematiske operatører er tilgjengelige:
Matematisk operatør | Beskrivelse |
---|---|
+ | 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:
Operatør | Beskrivelse |
---|---|
STARTS WITH | Returner alle rader der en kolonne starter med et prefiks. |
ENDS WITH | Returner alle rader der en kolonne ender med et suffiks. |
CONTAINS | Returner 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
*/