Använd ShopifyQL frågeredigerare
Du kan använda ShopifyQL med nya Shopify Analytics för att utforska databasen för ditt eget företag och hämta data som ger dig en mer detaljerad förståelse för ditt företag.
ShopifyQL, eller Shopifys frågespråk, är Shopifys frågespråk som är byggt för handel. Frågespråk används för att begära och hämta data från olika språk. Din butiksdata lagras i databastabeller, strukturerade i definierade kolumner och rader. Kolumner definierar vilken typ av information de innehåller, till exempel försäljning, och i raderna anges det faktiska värdet för datatypen, till exempel 2 450 USD i försäljning.
För att få dina data i ett meningsfullt format måste en förfrågan skickas till databasen. En fråga är en förfrågan som kräver specifika data som svar, bestående av sökord och deras motsvarande parametrar. Kombinationen av flera sökord med specifika parametrar bygger upp din fråga. När du har skapat din fråga kan du köra den och ta emot en rapport.
Ordlista över termer
Villkor | Definition |
---|---|
Dimension | Ett attribut som segmenterar data så att de kan sorteras och presenteras mer tydligt. Vanliga exempel på mått inkluderar tid, produkter och platser. Mått används som parametrar i ShopifyQL. |
Sökord | ShopifyQL-syntax som fungerar som ett kommando för att rikta din förfrågan. |
Mätvärden | En kvantitativ mätning av data. Vanliga exempel på mätvärden inkluderar total försäljning, antal ordrar och bruttovinst. |
Parameter | ShopifyQL-syntax som identifierar de databaselement eller detaljer som ska ingå i din förfrågan. |
Operator | Ett reserverat ord eller tecken som används som en del av en fråga. Till exempel STARTS WITH , >= eller last_week . |
Syntax för ShopifyQL
Du måste uppfylla följande krav när du skapar en giltig rapportfråga med hjälp av ShopifyQL:
- Du kan placera en hel fråga på en rad eller på separata rader.
- Du måste inkludera minst
FROM
ochSHOW
, med deras tillämpliga parametrar. Alla andra sökord och parametrar är valfria. - Alla sökord i en fråga måste ingå i följande ordning:
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
& valfrittUNTIL
10.ORDER BY
11.LIMIT
12.VISUALIZE
&TYPE
Detta är ett exempel på ShopifyQL som skrivits ut som en fråga med korrekt syntax. Sökorden är skrivna i fet stil, deras motsvarande parametrar inkluderas med allmänna platshållare och valfria parametrar är skrivna inom 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ökord
ShopifyQL-frågor kan variera från grundläggande, för datainsikter på hög nivå till omfattande, för detaljerade insikter. Varje sökord har en specifik funktion som bygger ut din förfrågan.
Sökord | Beskrivning |
---|---|
FROM | Anger vilken dataset-tabell du vill välja data från. |
SHOW | Väljer de kolumner du vill extrahera från dataset-tabellen. |
WHERE | Definierar villkor som rader måste uppfylla för att väljas. |
GROUP BY | Grupperar extraherade data efter en dimension eller tidsdimension. |
TIMESERIES | Särskiljer gruppering efter tidsdimensioner och kompletterar datum i en fråga. |
WITH | Ändrar beteendet för vissa ShopifyQL-sökord. |
HAVING | Filtrerar resultaten av en fråga efter det att de har grupperats. |
SINCE | Visar data sedan en viss tidigare tid. Ofta parkopplad med UNTIL . |
UNTIL | Visar data fram till en viss tidigare tid. Ofta parkopplad med SINCE eller COMPARE TO . |
DURING | Visar data under en angiven tid i det förflutna. |
COMPARE TO | Visar data för jämförelse med en viss tidigare tid. |
ORDER BY | Anger vilken kolumn som data ska sorteras efter. |
LIMIT | Begränsar antalet rader med data som visas. |
VISUALIZE | Visar dina data i en rad- eller fält-presentation. Du kan ange vilken typ avisering du vill ha, med hjälp avTYPE . |
AS | Ett valfritt sökord som byter namn på en kolumn till det namn du väljer. |
Det krävs endast två nyckelord för att skapa den enklaste ShopifyQL-frågan: FROM
och SHOW
, skrivna i den ordningen. FROM
, följt av en eller flera parametrar för tabellnamn anger vilka tabeller du vill söka i. SHOW
, följt av en kolumnnamnsparameter anger de kolumner du vill välja.
SHOW
kan användas för att ange i vilken ordning mätvärden och mått returneras i rapporten.
Du kan till exempel returnera summan av den totala försäljningen genom att skriva in den här frågan:
FROM sales
SHOW total_sales
WHERE
Sökordet WHERE
låter dig använda ett dimensionellt filter för en hel ShopifyQL-fråga. Filtret kan ändras av både jämförelseoperatorer (till exempel större än >
), logiska operatorer (till exempel AND
eller NOT
) och partiell sträng- och arraymatchning (till exempel STARTS WITH
och CONTAINS
).
WHERE
villkoren måste uppfylla följande krav:
- Värden måste omges med enkla citattecken ('), inte dubbla citattecken (").
- Villkor får inte innehålla någon aritmetik.
- Villkor kan endast referera till en dimension, inte ett mätvärde.
Om du till exempel vill returnera den totala försäljningen men filtrerad utifrån faktureringsland är din fråga:
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'
GROUP BY product_title, product_type, product_vendor
Till exempel, i exemplet ovan kan du filtrera resultatet inställt med parametern WHERE
även när den parametern inte ingår i sökordet SHOW
. I det här fallet filtreras den totala försäljningen endast för beställningar från Kanada, även då billing_country
inte ingår i resultat-uppsättningen.
Jämförelseoperatorer
Sökordet WHERE
använder jämförelseoperatorer för att filtrera data. I exemplet ovan användes =
för att specificera att frågan filtrerar på ett specifikt värde, men det finns andra operatörer tillgängliga för dig:
Jämförelseoperator | Beskrivning |
---|---|
= | lika med |
!= | inte lika med |
< | mindre än |
> | större än |
<= | är mindre än eller lika med |
>= | är större än eller lika med |
För att filtrera dina data ytterligare kan du lägga till logiska operatörer i din fråga. De logiska operatörerna för ShopifyQL är:
Logisk operatör | Beskrivning |
---|---|
AND | Filtrera för att inkludera alla rader där villkoren separerade med AND är uppfyllda. |
OR | Filtrera för att inkludera alla rader där något av villkoren separerade med OR är uppfyllda. |
NOT | Filtrera för att bara inkludera rader där villkoren inte är uppfyllda, till exempel rader som inte innehåller det angivna värdet. |
Du kan använda flera filter med sökordet WHERE
genom att lägga till logiska operatörer.
Om du lägger till datauppsättningsfrågan till exemplet, för att få en månatlig gruppering av nettoförsäljning för alla ordrar med torkade persikor där faktureringsadressen var i Kanada och det fanns en rabatt tillämpad, så är frågan:
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
Om du vill segmentera ett mätvärde efter en dimension, till exempel gruppera försäljning efter region, använder du sökordet GROUP BY
. Sökordet GROUP BY
kan paras med valfri dimensionsparameter.
Till exempel skrivs en fråga som grupperar total försäljning efter faktureringsland och -region som:
FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region
Här är en annan exempelfråga som använder en tidsdimension för att visa omsättning per månad:
FROM sales
SHOW total_sales
GROUP BY month
Ovanstående fråga returnerar inte några månader där du inte har någon försäljning. Om du vill ha en fråga som returnerar en fullständig, oavbruten tidsperiod använder du TIMESERIES
-sökordet.
FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today
Tidsdimensioner
Det här är tidsdimensionerna som du kan använda för att gruppera dina data:
Operator | Beskrivning |
---|---|
second | Gruppera efter sekund för en timme. |
minute | Gruppera efter minut för en timme. |
hour | Gruppera efter timme per kalenderdag. |
day | Gruppering efter kalenderdag. |
week | Gruppering efter kalendervecka. |
month | Gruppera efter kalendermånad. |
quarter | Gruppera efter kalenderkvartal. |
year | Gruppera efter kalenderår. |
hour_of_day | Nollbaserad gruppering efter 24 timmar (0, 1, ..., 23). |
day_of_week | Nollbaserad gruppering efter veckodag (0, 1, ... , 6). |
week_of_year | Gruppera efter vecka på året (1, 2, ..., 52). |
month_of_year | Gruppera efter månad på året (1, 2, ..., 12). |
Du kan använda sökordet TIMESERIES
när du vill särskilja en gruppering efter tidsdimension, visa mätvärden över tid och fyllnadsdatum i en fråga för att omvandla till ett timeseries-diagram där data inte finns.
I det här exemplet kompletterar du saknade totala försäljningsdata för de senaste 15 dagarna:
FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d
TIMESERIES och sortering av kolumner
Beroende på om TIMESERIES
anges och finns i antingen GROUP BY
eller SHOW
värden kan sorteringen av kolumnerna ändras.
TIMESERIES | SHOW | GROUP BY | Resultat |
---|---|---|---|
Angiven | Inte närvarande | Inte närvarande |
TIMESERIES är den första dimensionen. |
Angiven | Inte närvarande | Presentera | Position för tidsdimension definieras av dess position i GROUP BY . |
Angiven | Presentera | Presentera | Position för tidsdimension definieras av dess position i SHOW . |
Ej angiven | Inte närvarande | Presentera | Position för tidsdimension definieras av dess position i GROUP BY . Data är inte kompletterad. |
Ej angiven | Presentera | Presentera | Position för tidsdimension definieras av dess position i SHOW . Data är inte kompletterad. |
Ej angiven | Presentera | Inte närvarande | Utlöser ett syntaxfel eftersom SHOW endast kan referera till dimensioner som finns i GROUP BY . |
På samma sätt som WHERE
kan du använda HAVING
för att filtrera resultaten av en fråga efter det att de har grupperats. Filtret kan ha ett villkor, men villkoret kan ändras av både jämförelseoperatorer (till exempel större än >
) och logiska operatorer (till exempel AND
eller NOT
). Till skillnad från sökorden WHERE
kan HAVING
referera till alias, sammanställningsfunktioner och grupperingskolumner.
HAVING
kräver att din förfrågan innehåller satsen GROUP BY
eller TIMESERIES
, eftersom HAVING
filtrerar resultaten av en fråga efter det att de har grupperats efter GROUP BY
eller TIMESERIES
.
I det här exemplet filtrerar du den totala försäljningen för varje produkt som har en total försäljning större än 1 000 och mindre än 5 000:
FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000
WITH
Sökordet WITH
ändrar beteendet för vissa andra ShopifyQL-sökord. Det finns 3 tillgängliga ändringar:
TOTALS
: Ger en översikt över den högsta mätvärdesnivån innan de delas upp i en dimension.GROUP_TOTALS
: Tillhandahåller en totalsumma för alla undergrupper när det finns en aggregerad grupp.PERCENT_CHANGE
: Lägger till ett mätvärde för procentuell förändring för varje jämförelsekolumn iCOMPARE TO
. När denna modifierare är närvarande läggs en ny kolumn till för varje jämförelsemätkolumn som innehåller en procentuell förändring.
TOTALS
Modifieraren TOTALS
ger en översikt över de högsta mätvärdena innan de delas upp av någon annan dimension. När du använder WITH TOTALS
returneras summorna som extra kolumner för de resultat som anges med mätvärdets namn och "summor" som en del av kolumnnamnet. Varje rad innehåller alla tillämpliga summor.
Den här frågan visar till exempel summorna för total försäljning:
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
Den här frågan kan returnera en rapport som liknar den här:
Dag | Bruttoförsäljning | Nettoförsäljning | Totalt antal försäljningar |
---|---|---|---|
Sammanfattning | 6 | 15 | 24 |
2024-01-01 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
2024-01-03 | 3 | 6 | 9 |
Modifieraren GROUP_TOTALS
visar totalsumman för alla undergrupper när det finns en aggregerad grupp. När du använder WITH GROUP_TOTALS
returnerar frågan summorna som extra kolumner i resultaten inställda med mätvärdets namn, måtten summerade och "summor" som en del av kolumnnamnet. Varje rad innehåller alla tillämpliga summor.
Den här frågan visar till exempel total försäljning per faktureringsland:
FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS
Den här frågan kan returnera en rapport som liknar den här:
Land | Kund-ID | Totalt antal försäljningar |
---|---|---|
Sammanfattning (USA + Kanada) | - | 1 |
USA-gruppens totalsummor | - | 0 |
USA | 1 | 1 |
USA | null | -1 |
Kanadagruppens totalsummor | - | 1 |
Kanada | 1 | 1 |
Modifieraren PERCENT_CHANGE
lägger till ett procentuellt ändringsmätvärde för varje jämförelsekolumn när du använderCOMPARE TO
. När du använder WITH PERCENT_CHANGE
returneras den procentuella förändringen för varje jämförelsemätvärde som extra kolumner i resultaten som anges med mätvärdets namn och "procentuell förändring" som en del av kolumnnamnet.
Den formel som används för att beräkna procentuell förändring är: (base_column - comparison_column) * 100 / abs(comparison_column)
Den här frågan använder till exempel SINCE
och COMPARE TO
för att jämföra nettoförsäljningen per dag under föregående månad med samma månad föregående år, med en kolumn för procentuell förändring:
FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Kolumnerna i den erhållna rapporten inkluderar dag, nettoförsäljning, jämförelsedag, jämförelse nettoförsäljning och procentuell förändring av nettoförsäljning.
SINCE och UNTIL
Om du vill filtrera din fråga efter ett datum eller en viss tidsperiod kan du använda SINCE
och UNTIL
sökord och deras tillhörande parametrar. Dessa sökord är unika eftersom de bara filtrerar tidsperioder. Om du använder SINCE
och inte definierar ett UNTIL
kommer slutet på ditt tidsintervall att vara today
.
Det här är till exempel en fråga för att hitta nettoförsäljning under de senaste 12 månaderna, i Kanada, med avslutning igår:
FROM sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
Kompensationsoperatorer
Du kan filtrera efter specifika datum eller efter kompensation för datum och tid. Kompensationsoperatörer för ShopifyQL är:
Kompensationsoperator | Beskrivning |
---|---|
-{#}s | Antal sekunder från det datum och den tid då frågan körs. |
-{#}min | Antal minuter från det datum och den tid då frågan körs. |
-{#}h | Antal timmar från det datum och den tid då frågan körs. |
-{#}d | Antal dagar från det datum och den tid då frågan körs. |
-{#}w | Antal veckor från det datum och den tid då frågan körs. |
-{#}m | Antal månader från den dag och tid då frågan körs. |
-{#}q | Antal kvartal sedan från det datum och den tidpunkt då frågan kördes. |
-{#}y | Antal år från det datum och den tid då frågan körs. |
yyyy-MM-dd | Ett specifikt datum. |
yyyy-MM-ddThh:mm:ss | Ett specifikt datum och tid. |
Du kan använda följande funktioner, kombinerat med alla datumintervalloperatorer (med undantag för specifika datum) i SINCE
- och UNTIL
-satser. "startOf...
"-funktioner trunkerar till början av tillhörande tidsenhet (minut, timme, dag, vecka, månad, kvartal och år) när de används tillsammans med SINCE
- och "endOf...
"-funktioner trunkerar till slutet av associerad tidsenhet när de används tillsammans med UNTIL
.
Datumfunktionsenheter och operatorenheter måste matcha för att returnera ett giltigt resultat. Till exempel, startOfMonth(-1m)
är korrekt, men startOfMonth(-1d)
är inte korrekt.
Datumfunktion | Beskrivning |
---|---|
now | Datum och tid när frågan körs. |
startOfMinute(-{#}min) | Trunkerar operatorn för datumintervallet till starten av målminuten. |
endOfMinute(-{#}min) | Trunkerar operatorn för datumintervall till slutet av målminuten. |
startOfHour(-{#}h) | Trunkerar operatorn för datumintervall till början av måltimmen. |
endOfHour(-{#}h) | Trunkerar operatorn för datumintervallet till slutet av måltimmen. |
startOfDay(-{#}d) | Trunkerar operatorn för datumintervall till början av måldagen. |
endOfDay(-{#}d) | Trunkerar operatorn för datumintervall till slutet av måldagen. | startOfWeek(-{#}w) | Trunkerar operatorn för datumintervall till början av målveckan. |
Om det till exempel är den 8:e november 2022 kan du använda följande fråga för att returnera bruttoförsäljningen från den 1:a januari 2020 till den 31:a oktober 2022:
FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)
DURING
DURING
-sökordet förenklar datumfiltrering för datumintervall och ersätter användningen av SINCE
och UNTIL
. Du kan använda sökordet DURING
för att filtrera frågeresultaten för en känd tidsperiod, till exempel ett kalenderår eller en specifik månad, eller datumintervall som har olika datum varje år, till exempel Black Friday Cyber Monday. Till exempel:
FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021
Namngivna operatorer för datumintervall
DURING
accepterar någon av följande operatorer för datumintervall:
Namngiven operator för datumintervall | Beskrivning |
---|---|
today | Det datum då frågan körs. |
yesterday | Föregående 24 timmar från den tidpunkt då frågan körs. |
this_week | Den aktuella kalenderveckan. |
this_month | Den aktuella kalendermånaden. |
this_quarter | Innevarande kalenderkvartal. |
this_year | Innevarande kalenderår. |
last_week | Föregående kalendervecka. |
last_month | Föregående kalendermånad. |
last_quarter | Föregående kalenderkvartal. |
last_year | Föregående kalenderår. |
bfcmYYYY | Black Friday Cyber Monday för det angivna året. Till exempel bfcm2022 resultat för 25:e–28:e november 2022. |
COMPARE TO
Sökordet COMPARE TO
låter dig jämföra data inom datumintervallet i SINCE
och UNTIL
eller DURING
och det i COMPARE TO
.
Du kan använda COMPARE TO
med följande typer av parametrar:
Absolut datum, till exempel
2023-01-01
: Inkluderar mätvärden för den angivna perioden och jämförelsemetrik för samma period på det absoluta datumet.Namngivna datum som
last_week
: Inkluderar mätvärden för specificerad period och jämförelsevärden för samma period på namngivet datum. - Operatorn som används avCOMPARE TO
behöver inte ha samma tidslängd som den som används avDURING
. Om ingetUNTIL
-värde anges beräknas tidsintervallet som är lika med det värde som anges iDURING
. Till exempel, medDURING this_week COMPARE TO last_month
kan du jämföra veckans data med en veckolång period som börjar i början av den senaste månaden.Datumkompensation som
-3q
: Inkluderar mätvärden för specificerad period och jämförelsevärden för samma period på relativt datum.Flera datumjämförelser, till exempel
-1y, -2y
: Jämför dina data från ett specifikt datumintervall med flera andra datumintervall. Det kan vara användbart när du vill spåra ändringar under flera perioder.Om du använder en datumdimension i en fråga med
COMPARE TO
måste du användaTIMESERIES
, snarare änGROUP BY
.
Följande exempel jämför nettoförsäljningen under föregående månad med samma månad föregående år:
FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Operatorer för relativt datumintervall
Relativa operatorer returnerar samma tidsperiod som basdatumintervallet, förskjuten bakåt av den angivna perioden. Förutom operatorerna för det namngivna datumintervallet accepterarCOMPARE TO
följande relativa operatorer:
Operatorn för relativt datumintervall | Beskrivning |
---|---|
previous_period | En period före basdatumintervallet. |
previous_year | Ett år före basdatumintervallet. |
previous_quarter | Ett kvartal före basdatumintervallet. |
previous_month | En månad innan basdatumintervallet. |
previous_week | En vecka före basdatumintervallet. |
previous_day | En dag före basdatumintervallet. |
previous_hour | En timme före basdatumintervallet. |
previous_minute | En minut före basdatumintervallet. |
previous_second | En sekund före basdatumintervallet. |
Du kan ange hur du vill sortera data som returneras av din fråga med hjälp av ORDER BY
sökordet och dess parametrar: ASC
för stigande ordning och DESC
för fallande ordning.
Du kan ange mätvärden eller mått som du inkluderar i din fråga i sökordet ORDER BY
, inklusive flera fält.
Den här frågan returnerar till exempel nettoförsäljning för alla produkter och varianter under det senaste året. Resultaten sorteras först i alfabetisk ordning efter produktnamn och sedan i omvänd alfabetisk ordning efter produkttyp:
FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC
Den ordning du skriver dina mätvärden eller mått i spelar roll. Om du anger flera värden för ORDER BY
tillämpas sorteringen på varje mätvärde eller mått i den angivna ordern.
TIMESERIES och sortering av kolumner
Beroende på om frågan innehåller ett TIMESERIES
och ORDER BY
kan sorteringen av kolumnerna ändras.
TIMESERIES | ORDER BY | Resultat |
---|---|---|
Presentera | Inte närvarande | Resultat sorteras efter TIMESERIES dimension. |
Presentera | Presentera | Resultat sorteras efter TIMESERIES tidsdimension och ORDER BY -dimension. |
Inte närvarande | Presentera | Resultat sorteras efter ORDER BY dimension. |
Inte närvarande | Inte närvarande | Resultaten sorteras efter den första SHOW kolumnen. |
Sökordet LIMIT
låter dig ange ett maximalt antal rader som frågan ska returnera. Detta är användbart när du helt enkelt vill förstå hur data i varje kolumn visas, eller för större rapporter där frågor kan ta längre tid för att returnera värden. Du kan kombinera LIMIT
med ORDER BY
för att skapa topp- och bottenlistor.
Om du inte anger ett LIMIT
kommer frågan som standard att vara 1 000 rader.
Du kan även använda en valfri { OFFSET # }
-parameter för att hoppa över ett visst antal rader innan du börjar returnera raddata. Den färdiga frasen formateras på liknande sätt som: LIMIT 15 { OFFSET 5 }
.
Det här exemplet använder LIMIT
och ORDER BY
för att skapa en lista över de 10 mest sålda produkterna under de senaste 3 månaderna:
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 och TYPE
Sökordet VISUALIZE
låter dig skriva en ShopifyQL-fråga som presenterar data grafiskt. De stödda presentationerna inkluderar följande värden:
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ökordet TYPE
är valfritt och måste följas av en enda typ av presentation. Om TYPE
inte ingår i din fråga avgör ShopifyQL automatiskt vilken presentation som bäst passar din fråga. ShopifyQL returnerar tabelldata om din fråga inte kan presenteras skriftligt.
VISUALIZE
accepterar även ett valfritt LIMIT
-sökord där parametern är det begränsade antalet datapunkter som återges.
Du kan till exempel visualisera din försäljningstrend under det senaste året efter månad med en trendlinje. Den här frågan returnerar ett tidsseriediagram som visar bruttoförsäljning efter månad under det senaste året. Bruttoförsäljningen visas med en enda linje, med x-axeln märkt månad och y-axeln märkt bruttoförsäljning:
FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line
AS
Sökordet AS
är ett valfritt sökord som låter dig byta namn på (eller ange ett alias för) en kolumn eller ett uttryck.
AS
accepterar endast en enda parameter. Om ett alias har ett mellanslag i namnet måste du omge aliaset med dubbla citattecken (").
FROM sales
SHOW total_sales AS "My Total Sales"
Andra ShopifyQL-operatorer
ShopifyQL innehåller dessutom följande operatorer:
- Matematiska operatorer, så som
+
eller/
- Implicita kopplingar
- Partiell sträng- och matrismatchning, så som
STARTS WITH
ochCONTAINS
- Kommentarer
Matematiska operatörer
ShopifyQL möjliggör aritmetiska åtgärder med mätvärden i dina data. Följande matematiska operatörer är tillgängliga:
Matematisk operatör | Beskrivning |
---|---|
+ | Addition av två tal. |
- | Subtraktion av två tal. |
* | Multiplikation av två tal. |
/ | Division av två tal. |
Den här frågan beräknar till exempel ordervärdet för varje region under det senaste året. När du använder matematiska operatörer med mätvärden kan du använda sökordet AS
för att tilldela ett nytt namn till det nya mätvärdet. Tänk på att det finns begränsningar för användningen av matematiska uttryck.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Implicita kopplingar
Med en join kan du se statistik från olika domäner tillsammans, sida vid sida. Joins görs implicit och intelligent i ShopifyQL.
ShopifyQL har följande samkörningsfunktioner:
- ShopifyQL tillåter joins av dimensionsfält när det finns en enda
FROM
-tabell i frågan. - Automatisk left join av dimensionsfält.
- ShopifyQL tillåter multi-fact joins (när det finns flera
FROM
-tabeller i frågorna). - Automatisk full join av multi-fact joins, som har stöd för valfritt antal tabeller eller scheman och grupperat efter dimensioner.
- Mätvärden i multi-fact joins kan använda math.
Shopify QL har följande join-begränsningar:
- Join-fält måste ha samma namn i alla sammankopplade scheman.
- Join-fältet måste vara i
GROUP BY
. - Join-fältet kan inte använda math.
FROM
är nödvändigt för att multi-fact joins ska fungera.- I en multi-fact join måste varje
GROUP BY
finnas i alla scheman och anses vara ett fält som ska sammankopplas.
Till exempel använder den här frågan en multi-fact join:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Partiell sträng- och array-matchning
Du kan använda följande operatorer för partiell sträng- och array-matchning:
Operator | Beskrivning |
---|---|
STARTS WITH | Returnera alla rader där en kolumn börjar med ett prefix. |
ENDS WITH | Returnera alla rader där en kolumn slutar med ett suffix. |
CONTAINS | Returnera alla rader där en kolumn innehåller en del av en sträng eller ett element i en matris. |
Några exempel på delvis strängmatchning med operatorer inkluderar följande frågor:
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
Operatorn CONTAINS
kan användas för att matcha element i arrayer, inklusive heltal, strängar och decimaler. Denna matchning är inte skiftlägeskänslig. Några exempel på array-matchning med CONTAINS
inkluderar följande frågor:
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 använda kommentarer för att förklara avsnitt i ShopifyQL-satser eller för att förhindra körningen av en ShopifyQL-sats. Text i en kommentar ignoreras under körningstiden.
Enkelradskommentarer börjar --
och slutar på slutet av raden.
Kommentarer med flera rader börjar med /*
och slutar 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
*/