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
Vilkår | Definition |
---|---|
Mål | En attribut, der segmenterer data, så de kan sorteres og præsenteres mere tydeligt. Almindelige eksempler på dimensioner omfatter klokkeslæt, produkter og sted. Dimensioner bruges som parametre i ShopifyQL. |
Søgeord | ShopifyQL-syntaks, der fungerer som en kommando, som bruges til at dirigere din forespørgsel. |
Metrisk | Et kvantitativt måling af data. Almindelige eksempler på parametre omfatter salg i alt, antallet af ordrer og bruttofortjeneste. |
Parameter | ShopifyQL-syntaks, der identificerer de databaseelementer eller -oplysninger, der skal medtages i forespørgslen. |
Operator | Et reserveret ord eller tegn, der bruges som en del af en forespørgsel. Eksempler omfatter STARTS WITH , >= eller last_week . |
ShopifyQL-syntaks
Du skal opfylde følgende krav, når du skal oprette en gyldig rapportforespørgsel ved hjælp af ShopifyQL:
- Du kan placere en hel forespørgsel på én linje eller på separate linjer.
- Du skal som minimum inkludere søgeordene
FROM
ogSHOW
med deres relevante parametre. Alle andre søgeord og parametre er valgfrie. - Alle søgeord i en forespørgsel skal inkluderes i følgende rækkefølge:
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
& valgfritUNTIL
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.
Søgeord | Beskrivelse |
---|---|
FROM | Angiver den tabel med datasæt, som dataene skal vælges fra. |
SHOW | Vælger de kolonner, du vil trække ud af tabellen med datasæt. |
WHERE | Definerer den betingelse eller de betingelser, som rækker skal opfylde for at kunne blive valgt. |
GROUP BY | Grupperer de udtrukne data efter en dimension eller tidsdimensioner. |
TIMESERIES | Skelner mellem gruppering efter tidsmål og udfyldningsdatoer i en forespørgsel. |
WITH | Ændrer funktionsmåden for visse ShopifyQL-søgeord. |
HAVING | Filtrerer resultaterne af en forespørgsel, når de er blevet grupperet. |
SINCE | Viser data efter et specifikt tidspunkt i fortiden. Parres ofte med UNTIL . |
UNTIL | Viser data indtil et specifikt tidspunkt i fortiden. Parres ofte med SINCE eller COMPARE TO . |
DURING | Viser data på et specifikt tidspunkt i fortiden. |
COMPARE TO | Viser data til sammenligning med et bestemt tidspunkt i fortiden. |
ORDER BY | Angiver den kolonne, som dataene skal sorteres efter. |
LIMIT | Begrænser det antal rækker med data, som vises. |
VISUALIZE | Viser dine data i en kurve- eller søjlevisualisering. Du kan angive, hvilken visualisering du ønsker med TYPE . |
AS | Et valgfrit søgeord, der omdøber en kolonne til et navn, du har valgt. |
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'
GROUP BY product_title, product_type, product_vendor
Som i ovenstående eksempel kan du filtrere det resultat, der er angivet med WHERE
-parameteret, også selv om dette parameter ikke er inkluderet i søgeordet SHOW
. I dette tilfælde filtreres salg i alt kun for ordrer fra Canada, selvom billing_country
ikke er inkluderet i resultatsættet.
Sammenligningsoperatorer
Søgeordet “WHERE
” bruger sammenligningsoperatorer til at filtrere data. I ovenstående eksempel er “=
” blevet brugt til at angive, at forespørgslen filtrerer efter en specifik værdi, men der er andre operatorer tilgængelige for dig:
Sammenligningsoperator | Beskrivelse |
---|---|
= | er lig med |
!= | ikke lig med |
< | mindre end |
> | større end |
<= | mindre end eller lig med |
>= | større end eller lig med |
Hvis du vil filtrere dine data, kan du føje logiske operatorer til din forespørgsel. De logiske ShopifyQL-operatorer er:
Logisk operator | Beskrivelse |
---|---|
AND | Filtrer for at inkludere alle de rækker, hvor betingelserne, der er adskilt af “AND ”, er opfyldt. |
OR | Filtrer for at inkludere alle de rækker, hvor én af betingelserne, der er adskilt af “OR ”, er opfyldt. |
NOT | Filtrer for kun at inkludere de rækker, hvor betingelserne ikke er opfyldt, f.eks. de rækker, der ikke indeholder den angivne værdi. |
Du kan bruge flere filtre med søgeordet “WHERE
” ved at tilføje logiske operatorer.
Tilføjelse til eksemplet på datasætforespørgslen: Hvis du ønsker en månedlig gruppering af alle ordrer med tørrede ferskener, hvor faktureringsadressen var i Canada, og der var anvendt rabat, vil forespørgslen være:
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
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:
Operator | Beskrivelse |
---|---|
second | Gruppering efter sekund i en time. |
minute | Gruppering efter minut i en time. |
hour | Gruppering efter time på kalenderdag. |
day | Gruppering efter kalenderdag. |
week | Gruppering efter kalenderuge. |
month | Gruppering efter kalendermåned. |
quarter | Gruppering efter kalenderkvartal. |
year | Gruppering efter kalenderår. |
hour_of_day | Nulbaseret gruppering efter 24 timer (0, 1, ..., 23). |
day_of_week | Nulbaseret gruppering efter ugedag (0, 1, ..., 6). |
week_of_year | Gruppering efter uge i året (1, 2, ..., 52). |
month_of_year | Gruppering efter måned på året (1, 2, ..., 12). |
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.
TIMESERIES | SHOW | GROUP BY | Resultat |
---|---|---|---|
Angivet | Ikke til stede | Ikke til stede |
TIMESERIES er den første dimension. |
Angivet | Ikke til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i GROUP BY . |
Angivet | Til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i SHOW . |
Ikke angivet | Ikke til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i GROUP BY . Dataene er ikke udfyldt retroaktivt. |
Ikke angivet | Til stede | Til stede | Positionen for tidsdimensioner defineres efter dens position i SHOW . Dataene er ikke udfyldt retroaktivt. |
Ikke angivet | Til stede | Ikke til stede | Udløser en syntaksfejl, fordi SHOW kun kan referere til dimensioner, der findes GROUP BY . |
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 iCOMPARE TO
. Når denne modifikation er til stede, tilføjes der en ny kolonne for hver sammenligningsparameterkolonne, som indeholder procentændringen.
TOTALS
Modifikationen TOTALS
giver en oversigt over parametre på øverste niveau, før de opdeles efter andre dimensioner. Når du bruger WITH TOTALS
, returnerer forespørgslen de samlede beløb som ekstra kolonner i resultatsættet med parameternavnet og "samlet beløb" som en del af kolonne-navnet. Hver række indeholder alle gældende samlede beløb.
Denne forespørgsel viser f.eks. de samlede beløb for salg i alt:
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
Denne forespørgsel returnerer muligvis en rapport, der minder om denne:
Dag | Bruttoomsætning | Nettoomsætning | Salg i alt |
---|---|---|---|
Oversigt | 6 | 15 | 24 |
2024-01-01 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
2024-01-03 | 3 | 6 | 9 |
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:
Land | Kunde-id | Salg i alt |
---|---|---|
Resume (USA + Canada) | - | 1 |
US Group-totaler | - | 0 |
USA | 1 | 1 |
USA | null | -1 |
Canada Group-totaler | - | 1 |
Canada | 1 | 1 |
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 sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
Operatorer for relative tidspunkter
Du kan filtrere efter specifikke datoer eller efter relative tidspunkter. ShopifyQL-operatorerne for relativ tid er:
Operator for relativ dato | Beskrivelse |
---|---|
-{#}s | Antal sekunder siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}min | Antal minutter siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}h | Antal timer siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}d | Antal dage siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}w | Antal uger siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}m | Antal måneder siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}q | Antal kvartaler siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
-{#}y | Antal år siden fra datoen og tidspunktet, hvor forespørgslen blev kørt. |
yyyy-MM-dd | En bestemt dato. |
yyyy-MM-ddThh:mm:ss | En bestemt dato og et bestemt klokkeslæt. |
Du kan bruge følgende funktioner kombineret med alle operatorer for datointerval (med undtagelse af specifikke datoer) i udsagn medSINCE
og UNTIL
. Funktionerne “startOf...
” afkortes til starten af den tilknyttede tidsenhed (minut, time, dag, uge, måned, kvartal og år), når de bruges sammen med “SINCE
”, og “endOf...
”-funktionerne afkortes til slutningen af den tilknyttede tidsenhed, når de bruges sammen med “UNTIL
”.
Datofunktionsenheder og operatorenheder skal matche for at returnere et gyldigt resultat. F.eks. er startOfMonth(-1m)
korrekt, men startOfMonth(-1d)
er ikke.
Datofunktion | Beskrivelse |
---|---|
now | Dato og klokkeslæt for, hvornår forespørgslen køres. |
startOfMinute(-{#}min) | Afkorter datointervaloperatoren til starten af målminuttet. |
endOfMinute(-{#}min) | Afkorter datointervaloperatoren til slutningen af målminuttet. |
startOfHour(-{#}h) | Afkorter datointervaloperatoren til starten af måltimen. |
endOfHour(-{#}h) | Afkorter datointervaloperatoren til slutningen af måltimen. |
startOfDay(-{#}d) | Afkorter datointervaloperatoren til starten af måldagen. |
endOfDay(-{#}d) | Afkorter datointervaloperatoren til slutningen af måldagen. | startOfWeek(-{#}w) | Afkorter datointervaloperatoren til starten af målugen. |
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:
Operatorer for navngivet datointerval | Beskrivelse |
---|---|
today | Den dato, hvor forespørgslen blev kørt. |
yesterday | Den forrige 24-timers periode fra det tidspunkt, hvor forespørgslen blev kørt. |
this_week | Den aktuelle kalenderuge. |
this_month | Den aktuelle kalendermåned. |
this_quarter | Det aktuelle kalenderkvartal. |
this_year | Det aktuelle kalenderår. |
last_week | Den forrige kalenderuge. |
last_month | Den forrige kalendermåned. |
last_quarter | Det forrige kalenderkvartal. |
last_year | Det forrige kalenderår. |
bfcmYYYY | Intervallet Black Friday Cyber Monday for det angivne år. F.eks. returnerer bfcm2022 resultater for 25.-28. november 2022. |
COMPARE TO
Søgeordet COMPARE TO
giver dig mulighed for at sammenligne data for hele datointervallet mellemSINCE
og UNTIL
eller DURING
samt det i COMPARE TO
.
Du kan bruge søgeordet COMPARE TO
med følgende parametertyper:
Absolutte datoer, såsom
2023-01-01
: Inkluderer parametre for den angivne periode og sammenligningsparametre for samme periode på den absolutte dato.Navngivne datoer, såsom
last_week
: Inkluderer parametre for den angivne periode og sammenligningsparametre for samme periode på den navngivne dato. - Den operator,COMPARE TO
bruger, behøver ikke at have samme længde som den, der bruges afDURING
. Hvis der ikke er angivet enUNTIL
-værdi, beregnes tidsintervallet som at være lig med den værdi, der er angivet iDURING
. F.eks. sammenlignerDURING this_week COMPARE TO last_month
denne uges data med en periode på en uge, der starter i begyndelsen af sidste måned.Relative datoer, såsom
-3q
: Inkluderer parametre for den angivne periode og sammenligningsparametre for samme periode på den relative dato.Flere datosammenligninger, f.eks.
-1y, -2y
: Sammenlign dine data fra et bestemt datointerval med flere andre datointervaller. Det kan være nyttigt, når du vil spore ændringer over flere perioder.Hvis du bruger en datodimension i en forespørgsel sammen med
COMPARE TO
, skal du brugeTIMESERIES
til den i stedet forGROUP BY
.
Det følgende eksempel sammenligner nettoomsætningen i den foregående måned med den samme måned i forrige år:
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:
Operator for relativt datointerval | Beskrivelse |
---|---|
previous_period | En periode før basisdatointervallet. |
previous_year | Et år før basisdatointervallet. |
previous_quarter | Et kvartal før basisdatointervallet. |
previous_month | En måned før basisdatointervallet. |
previous_week | En uge før basisdatointervallet. |
previous_day | En dag før basisdatointervallet. |
previous_hour | En time før basisdatointervallet. |
previous_minute | Et minut før basisdatointervallet. |
previous_second | Et sekund før basisdatointervallet. |
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.
TIMESERIES | ORDER BY | Resultat |
---|---|---|
Til stede | Ikke til stede | Resultaterne er sorteret efter dimensionen TIMESERIES . |
Til stede | Til stede | Resultaterne er sorteret efter tidsmålet TIMESERIES og derefter dimensionen ORDER BY . |
Ikke til stede | Til stede | Resultaterne er sorteret efter dimensionen ORDER BY . |
Ikke til stede | Ikke til stede | Resultaterne er sorteret efter den første SHOW kolonne. |
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 et udtryk.
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-operatorer
ShopifyQL indeholder følgende yderligere operatorer:
- Matematisk operatorer, såsom
+
eller/
- Implicitte forbindelser
- Delvis streng- og matrixmatchning, såsom
STARTS WITH
ogCONTAINS
- Kommentarer
Matematiske operatorer
ShopifyQL tillader algoritmiske handlinger med parametrene i dine data. Følgende matematiske operatorer er tilgængelige:
Matematiske operatorer | Beskrivelse |
---|---|
+ | Addition af to tal. |
- | Subtraktion af to tal. |
* | Multiplikation af to tal. |
/ | Division af to tal. |
For eksempel beregner denne forespørgsel ordreværdi for hvert område over det sidste å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. Vær opmærksom på, at der er begrænsninger for brugen af matematiske udtryk.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Implicitte forbindelser
En sammenføjning giver dig mulighed for at se parametre fra forskellige domæner sammen, side om side. Sammenføjninger udføres implicit og intelligent i ShopifyQL.
ShopifyQL har følgende sammenføjningsfunktionaliteter:
- ShopifyQL tillader dimensionsfeltsammenføjninger, når der er en enkelt
FROM
-tabel i forespørgslen. - Automatisk venstre sammenføjning på dimensionsfelter.
- ShopifyQL tillader multi-fact-sammenføjninger (når der er flere
FROM
-tabeller i forespørgslerne). - Automatisk fuld sammenføjning på multi-fact-sammenføjninger, som understøtter et vilkårligt antal tabeller eller skemaer og grupperet efter dimensioner.
- Metrics i multi-fact-sammenføjninger kan bruge matematik.
Shopify QL har følgende sammenføjningsbegrænsninger:
- Felter til sammenføjning skal have samme navn i alle sammenføjede skemaer.
- Sammenføjningsfeltet skal være i
GROUP BY
. - Sammenføjningsfeltet kan ikke bruge matematik.
FROM
er påkrævet for at multi-fact-sammenføjninger kan fungere.- I en multi-fact-sammenføjning skal hver
GROUP BY
være i alle skemaer og betragtes som et felt, der skal sammenføjes.
For eksempel bruger denne forespørgsel en multi-fact-sammenføjning:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Delvis streng- og matrixmatchning
Du kan bruge følgende operatører til delvis streng- og matrixmatchning:
Operator | Beskrivelse |
---|---|
STARTS WITH | Returner alle rækker, hvor en kolonne slutter med et præfiks. |
ENDS WITH | Returner alle rækker, hvor en kolonne slutter med et suffiks. |
CONTAINS | Returner alle rækker, hvor en kolonne indeholder en del af en streng eller et element i en matrix. |
Nogle eksempler på delvis strengmatchning ved hjælp af operatører omfatter følgende forespørgsler:
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
Operatøren CONTAINS
kan bruges til at matche elementer i matrixer, inklusive heltal, strenge og decimaler. Denne matching skelner ikke mellem store og små bogstaver. Nogle eksempler på matrixmatchning ved hjælp af CONTAINS
omfatter følgende forespørgsler:
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 bruge kommentarer til af forklare afsnit af ShopifyQL-sætninger eller til at forhindre udførelsen af en ShopifyQL-sætning. Tekst i kommentarer ignoreres under udførelsen.
Kommentarer på én linje starter med --
og slutter med sidst i linjen.
Kommentarer på 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
*/