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

Definitioner av ShopifyQL-termer, till exempel dimension, sökord och operator.
VillkorDefinition
DimensionEtt 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ökordShopifyQL-syntax som fungerar som ett kommando för att rikta din förfrågan.
MätvärdenEn kvantitativ mätning av data. Vanliga exempel på mätvärden inkluderar total försäljning, antal ordrar och bruttovinst.
ParameterShopifyQL-syntax som identifierar de databaselement eller detaljer som ska ingå i din förfrågan.
OperatorEtt 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 och SHOW, 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 eller DURING 9. COMPARE TO & valfritt UNTIL 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.

Lista över ShopifyQL-sökord och deras beskrivningar.
SökordBeskrivning
FROMAnger vilken dataset-tabell du vill välja data från.
SHOWVäljer de kolumner du vill extrahera från dataset-tabellen.
WHEREDefinierar villkor som rader måste uppfylla för att väljas.
GROUP BYGrupperar extraherade data efter en dimension eller tidsdimension.
TIMESERIESSärskiljer gruppering efter tidsdimensioner och kompletterar datum i en fråga.
WITHÄndrar beteendet för vissa ShopifyQL-sökord.
HAVINGFiltrerar resultaten av en fråga efter det att de har grupperats.
SINCEVisar data sedan en viss tidigare tid. Ofta parkopplad med UNTIL.
UNTILVisar data fram till en viss tidigare tid. Ofta parkopplad med SINCE eller COMPARE TO.
DURINGVisar data under en angiven tid i det förflutna.
COMPARE TOVisar data för jämförelse med en viss tidigare tid.
ORDER BYAnger vilken kolumn som data ska sorteras efter.
LIMITBegränsar antalet rader med data som visas.
VISUALIZEVisar dina data i en rad- eller fält-presentation. Du kan ange vilken typ avisering du vill ha, med hjälp avTYPE.
ASEtt valfritt sökord som byter namn på en kolumn till det namn du väljer.
### FROM och SHOW {#from-and-show}

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:

Lista över jämförelseoperatorer för ShopifyQL, till exempel större än eller lika med.
JämförelseoperatorBeskrivning
=lika med
!=inte lika med
<mindre än
>större än
<=är mindre än eller lika med
>=är större än eller lika med
#### Logisk operator

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:

Lista över logiska Operatorer för ShopifyQL, till exempel AND, OR och NOT.
Logisk operatörBeskrivning
ANDFiltrera för att inkludera alla rader där villkoren separerade med AND är uppfyllda.
ORFiltrera för att inkludera alla rader där något av villkoren separerade med OR är uppfyllda.
NOTFiltrera 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:

Lista över Tidsdimensioner för ShopifyQL, till exempel sekund, minut eller veckodag.
OperatorBeskrivning
secondGruppera efter sekund för en timme.
minuteGruppera efter minut för en timme.
hourGruppera efter timme per kalenderdag.
dayGruppering efter kalenderdag.
weekGruppering efter kalendervecka.
monthGruppera efter kalendermånad.
quarterGruppera efter kalenderkvartal.
yearGruppera efter kalenderår.
hour_of_dayNollbaserad gruppering efter 24 timmar (0, 1, ..., 23).
day_of_weekNollbaserad gruppering efter veckodag (0, 1, ... , 6).
week_of_yearGruppera efter vecka på året (1, 2, ..., 52).
month_of_yearGruppera efter månad på året (1, 2, ..., 12).
### TIMESERIES

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.

Exempel på TIMESERIES och i vilken ordning kolumnerna visas med GROUP BY eller SHOW i ShopifyQL.
TIMESERIESSHOWGROUP BYResultat
AngivenInte närvarandeInte närvarande TIMESERIES är den första dimensionen.
AngivenInte närvarandePresenteraPosition för tidsdimension definieras av dess position i GROUP BY.
AngivenPresenteraPresenteraPosition för tidsdimension definieras av dess position i SHOW.
Ej angivenInte närvarandePresenteraPosition för tidsdimension definieras av dess position i GROUP BY. Data är inte kompletterad.
Ej angivenPresenteraPresenteraPosition för tidsdimension definieras av dess position i SHOW. Data är inte kompletterad.
Ej angivenPresenteraInte närvarandeUtlöser ett syntaxfel eftersom SHOW endast kan referera till dimensioner som finns i GROUP BY.
### HAVING

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 i COMPARE 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:

Exemplifiera försäljningstabell ShopifyQL genom att använda WITH TOTALS.
DagBruttoförsäljningNettoförsäljningTotalt antal försäljningar
Sammanfattning61524
2024-01-01147
2024-01-02258
2024-01-03369
#### GROUP_TOTALS

Modifieraren GROUP_TOTALS visar totalsumman för alla undergrupper när det finns en aggregerad grupp. När du använder WITH GROUP_TOTALSreturnerar 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:

Exempel på en ShopifyQL-försäljningstabell med GROUP_TOTALS.
LandKund-IDTotalt antal försäljningar
Sammanfattning (USA + Kanada)-1
USA-gruppens totalsummor-0
USA11
USAnull-1
Kanadagruppens totalsummor-1
Kanada11
#### PERCENT_CHANGE

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_CHANGEreturneras 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:

Lista över operatorer för ShopifyQL-kompensation, till exempel kompensation med sekunder, minuter eller ett specifikt datum.
KompensationsoperatorBeskrivning
-{#}sAntal sekunder från det datum och den tid då frågan körs.
-{#}minAntal minuter från det datum och den tid då frågan körs.
-{#}hAntal timmar från det datum och den tid då frågan körs.
-{#}dAntal dagar från det datum och den tid då frågan körs.
-{#}wAntal veckor från det datum och den tid då frågan körs.
-{#}mAntal månader från den dag och tid då frågan körs.
-{#}qAntal kvartal sedan från det datum och den tidpunkt då frågan kördes.
-{#}yAntal år från det datum och den tid då frågan körs.
yyyy-MM-ddEtt specifikt datum.
yyyy-MM-ddThh:mm:ssEtt specifikt datum och tid.
#### Datumfunktioner

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.

<tr>
    <td scope="row"><code translate="no">endOfWeek(-{#}w)</code></td>
    <td>Trunkerar operatorn för datumintervall till slutet av målveckan.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">startOfMonth(-{#}m)</code></td>
    <td>Trunkerar operatorn för datumintervall till början av målmånaden.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">endOfMonth(-{#}m)</code></td>
    <td>Trunkerar operatorn för datumintervall till slutet av målmånaden.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">startOfQuarter(-{#}q)</code></td>
    <td>Trunkerar operatorn för datumintervall till början av målkvartalet.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">endOfQuarter(-{#}q)</code></td>
    <td>Trunkerar operatorn för datumintervall till slutet av målkvartalet.</td>
 </tr>
  <tr>
    <td scope="row"><code translate="no">startOfYear(-{#}y)</code></td>
    <td>Trunkerar operatorn för datumintervall till början av målåret.</td>
 </tr>
       <tr>
    <td scope="row"><code translate="no">endOfYear(-{#}y)</code></td>
    <td>Trunkerar operatorn för datumintervall till slutet av målåret.</td>
 </tr>
Lista över funktioner för ShopifyQL-datum, till exempel dagens slut eller kvartalets början.
DatumfunktionBeskrivning
nowDatum 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:

Lista över ShopifyQL-operatorer för datumintervall, till exempel idag, igår eller denna vecka.
Namngiven operator för datumintervallBeskrivning
todayDet datum då frågan körs.
yesterdayFöregående 24 timmar från den tidpunkt då frågan körs.
this_weekDen aktuella kalenderveckan.
this_monthDen aktuella kalendermånaden.
this_quarterInnevarande kalenderkvartal.
this_yearInnevarande kalenderår.
last_weekFöregående kalendervecka.
last_monthFöregående kalendermånad.
last_quarterFöregående kalenderkvartal.
last_yearFöregående kalenderår.
bfcmYYYYBlack 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 av COMPARE TO behöver inte ha samma tidslängd som den som används av DURING. Om inget UNTIL-värde anges beräknas tidsintervallet som är lika med det värde som anges i DURING. 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ända TIMESERIES, snarare än GROUP 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:

Lista över operatorer för ShopifyQL-relativa datumintervall, till exempel tidigare period eller föregående år.
Operatorn för relativt datumintervallBeskrivning
previous_periodEn period före basdatumintervallet.
previous_yearEtt år före basdatumintervallet.
previous_quarterEtt kvartal före basdatumintervallet.
previous_monthEn månad innan basdatumintervallet.
previous_weekEn vecka före basdatumintervallet.
previous_dayEn dag före basdatumintervallet.
previous_hourEn timme före basdatumintervallet.
previous_minuteEn minut före basdatumintervallet.
previous_secondEn sekund före basdatumintervallet.
### ORDER BY {#order-by}

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.

Exempel på TIMESERIES och hur kolumnerna sorteras när ORDER BY används med ShopifyQL.
TIMESERIESORDER BYResultat
PresenteraInte närvarandeResultat sorteras efter TIMESERIES dimension.
PresenteraPresenteraResultat sorteras efter TIMESERIES tidsdimension och ORDER BY-dimension.
Inte närvarandePresenteraResultat sorteras efter ORDER BY dimension.
Inte närvarandeInte närvarandeResultaten sorteras efter den första SHOW kolumnen.
### LIMIT {#limit}

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 operatörer

ShopifyQL möjliggör aritmetiska åtgärder med mätvärden i dina data. Följande matematiska operatörer är tillgängliga:

Lista över matematiska operatorer i ShopifyQL, inklusive plus och minus.
Matematisk operatörBeskrivning
+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:

Lista över partiella sträng- och array-matchande operatorer i ShopifyQL.
OperatorBeskrivning
STARTS WITHReturnera alla rader där en kolumn börjar med ett prefix.
ENDS WITHReturnera alla rader där en kolumn slutar med ett suffix.
CONTAINSReturnera 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
*/
Hittar du inte de svar du letar efter? Vi finns här för att hjälpa till!