Utilizzo dell'editor di query di ShopifyQL

Puoi utilizzare ShopifyQL con la nuova funzionalità Analisi di Shopify per esplorare il database del tuo negozio e recuperare i dati in grado di offrirti una conoscenza più approfondita della tua attività.

ShopifyQL, o Shopify Query Language, è il linguaggio di query di Shopify creato per il commercio. Le lingue di query vengono utilizzate per richiedere e recuperare dati dai database. I dati del tuo negozio sono memorizzati in tabelle di database, strutturate in colonne e righe definite. Le colonne definiscono il tipo di informazioni che contengono, ad esempio vendite e righe, che specificano il valore effettivo del tipo di dati, ad esempio 2.450 $ di vendite.

Per recuperare i dati in un formato utilizzabile, è necessario inviare una query al database. Una query è una domanda che richiede dati specifici come risposta, composta da parole chiave e dai relativi parametri. La combinazione di diverse parole chiave con parametri specifici crea la tua query. Dopo aver creato la query, puoi eseguirla e ricevere un report.

Glossario dei termini

Definizioni dei termini di ShopifyQL, come la dimensione, la parola chiave e l'operatore.
TermineDefinizione
DimensioneAttributo che segmenta i dati in modo che possano essere ordinati e presentati con maggiore chiarezza. Esempi comuni di dimensioni includono tempo, prodotti e luoghi. Le dimensioni vengono utilizzate come parametri di ShopifyQL.
Parola chiaveSintassi di ShopifyQL che agisce come comando per indirizzare la query.
MetricaMisurazione quantitativa dei dati. Esempi comuni di metriche includono le vendite totali, il numero di ordini e il profitto lordo.
ParametroSintassi di ShopifyQL che identifica gli elementi o i dati del database da includere nella query.
OperatoreParola o carattere riservato utilizzato come parte di una query. Alcuni esempi includono STARTS WITH, >= o last_week.

Sintassi di ShopifyQL

Quando si crea una query di report valida utilizzando ShopifyQL, devi soddisfare i seguenti requisiti:

  • è possibile inserire un'intera query su una riga o su righe separate;
  • devi includere almeno le parole chiave FROM e SHOW, con i parametri appropriati; tutte le altre parole chiave e parametri sono facoltativi.
  • Tutte le parole chiave in una query devono essere incluse nell'ordine seguente:
    1. FROM
    2. SHOW
    3. WHERE
    4. GROUP BY
    5. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    7. HAVING
    8. SINCE & UNTIL, o DURING
    9. COMPARE TO & facoltativo UNTIL
    10. ORDER BY
    11. LIMIT
    12. VISUALIZE & TYPE

Questo è un esempio di ShopifyQL, scritto come query utilizzando la sintassi corretta. Le parole chiave sono in grassetto, i parametri corrispondenti sono inclusi utilizzando segnaposto generici e i parametri facoltativi sono tra parentesi:

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

Parole chiave di ShopifyQL

Le query di ShopifyQL possono variare da quelle di base, per approfondimenti generici sui dati, a quelle complete, per approfondimenti dettagliati. Ogni parola chiave ha una funzione specifica che crea la tua query.

Elenco delle parole chiave di ShopifyQL e delle relative descrizioni.
Parola chiaveDescrizione
FROMSpecifica la tabella di set di dati da cui selezionare i dati.
SHOWSeleziona le colonne che desideri estrarre dalla tabella di set di dati.
WHEREDefinisce la condizione o le condizioni che le righe devono soddisfare per poter essere selezionate.
GROUP BYRaggruppa i dati estratti in base a una dimensione o a dimensioni di tempo.
WITHModifica il comportamento di alcune parole chiave di ShopifyQL.
TIMESERIESDistingue il raggruppamento per dimensioni temporali e completa le date in una query.
HAVINGFiltra i risultati di una query dopo che sono stati raggruppati.
SINCEMostra i dati relativi a un periodo di tempo specificato nel passato. Spesso associato a UNTIL.
UNTILMostra i dati fino a un'ora specificata nel passato. Spesso associato a SINCE o COMPARE TO.
DURINGMostra i dati durante un momento specifico del passato.
COMPARE TOMostra i dati da confrontare con un orario specificato nel passato.
ORDER BYSpecifica la colonna in base a cui ordinare i dati.
LIMITLimita il numero di righe di dati mostrate.
VISUALIZEMostra i dati in una visualizzazione a linee o a barre. Puoi specificare quale visualizzazione desideri con TYPE.
ASUna parola chiave facoltativa che rinomina una colonna con un nome a tua scelta.

FROM e SHOW

La creazione della query di ShopifyQL più semplice richiede solo due parole chiave: FROM e SHOW, scritte in questo ordine. FROM seguito da uno o più parametri del nome di una tabella specifica le tabelle su cui desideri eseguire una query. SHOW seguito da qualsiasi numero di parametri del nome di una colonna specifica le colonne che desideri selezionare.

SHOW può essere utilizzato per specificare l'ordine in cui le metriche e le dimensioni vengono restituite nel report.

Ad esempio, puoi restituire la somma delle vendite totali scrivendo questa query:

FROM sales
SHOW total_sales

WHERE

La parola chiave WHERE ti consente di applicare un filtro dimensionale a un'intera query di ShopifyQL. Il filtro può essere modificato sia dagli operatori di confronto (ad esempio greater than >), dagli operatori logici (ad esempio AND o NOT) che dalla corrispondenza parziale di stringa e matrice (ad esempio STARTS WITH e CONTAINS).

WHERE : queste condizioni devono soddisfare i requisiti seguenti.

  • I valori devono essere racchiusi tra virgolette singole ('), non tra virgolette doppie (").
  • Le condizioni non possono contenere alcuna aritmetica.
  • Le condizioni possono fare riferimento solo a una dimensione, non a una metrica.

Ad esempio, se desideri restituire le vendite totali, ma filtrate in base al paese di fatturazione, la tua query sarà:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'

Come nell'esempio sopra riportato, puoi filtrare il set di risultati con il parametro WHERE anche quando quel parametro non è incluso nella parola chiave SHOW . In questo caso, le vendite totali vengono filtrate solo per gli ordini provenienti dal Canada, anche se billing_country non è incluso nel set di risultati.

Operatori di confronto

La parola chiave WHERE utilizza operatori di confronto per filtrare i dati. Nell'esempio qui sopra = è stato utilizzato per specificare che la query filtri un valore specifico, tuttavia sono disponibili anche altri operatori:

Elenco degli operatori di confronto di ShopifyQL, come greater than o equal to.
Operatore di confrontoDescrizione
=uguale a
!=non uguale a
<minore di
>maggiore di
<=minore di o uguale a
>=maggiore di o uguale a

Operatori logici

Per filtrare ulteriormente i dati, puoi aggiungere operatori logici alla query. Gli operatori logici di ShopifyQL sono:

Elenco degli operatori logici di ShopifyQL, come AND, OR e NOT.
Operatore logicoDescrizione
ANDFiltro per includere tutte le righe in cui le condizioni separate da AND sono soddisfatte.
ORFiltro per includere tutte le righe in cui una delle condizioni separate da OR è soddisfatta.
NOTFiltro per includere solo le righe in cui le condizioni non sono soddisfatte, ad esempio le righe che non contengono il valore specificato.

Con la parola chiave WHERE puoi utilizzare più filtri aggiungendo operatori logici.

Ampliando la query del set di dati di esempio in modo da ottenere un raggruppamento mensile del fatturato netto per tutti gli ordini con pesche essiccate con indirizzo di fatturazione in Canada e con uno sconto applicato, la query sarà:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada' AND product_title='Dried Peaches' AND discounts > 0

GROUP BY

Per segmentare una metrica in base a una dimensione, ad esempio per raggruppare le vendite in base all'area geografica, utilizza la parola chiave GROUP BY. La parola chiave GROUP BY può essere associata a qualsiasi parametro di dimensione.

Ad esempio, una query che raggruppa le vendite totali per paese e area geografica di fatturazione sarà scritta come segue:

FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region

Ecco un'altra query di esempio che utilizza una dimensione temporale per mostrare le vendite totali per mese:

FROM sales
SHOW total_sales
GROUP BY month

La query qui sopra non restituisce nessuno dei mesi in cui non sono presenti vendite. Se desideri una query che restituisca un periodo di tempo completo e ininterrotto, utilizza la parola chiave TIMESERIES.

FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today

Dimensioni temporali

Di seguito sono elencate le dimensioni temporali che puoi utilizzare per raggruppare i dati:

Elenco delle dimensioni temporali di ShopifyQL, ad esempio secondo, minuto o giorno della settimana.
OperatoreDescrizione
secondRaggruppamento per secondo.
minuteRaggruppamento per minuto.
hourRaggruppamento per ora del giorno di calendario.
dayRaggruppamento per giorno di calendario.
weekRaggruppamento per settimana di calendario.
monthRaggruppamento per mese di calendario.
quarterRaggruppamento per trimestre di calendario.
yearRaggruppamento per anno di calendario.
hour_of_dayRaggruppamento per 24 ore (1, 2, ..., 24).
day_of_weekRaggruppamento per giorno della settimana (L, M, M, ..., D).
week_of_yearRaggruppamento per settimana dell'anno (1, 2, ..., 52).
month_of_yearRaggruppamento per mese dell'anno (1, 2, ..., 12).

TIMESERIES

Puoi utilizzare la parola chiave TIMESERIES per distinguere il raggruppamento in base alle dimensioni temporali, visualizzare le metriche nel tempo e completare le date in una query per trasformarle in un grafico di serie temporali in cui i dati non esistono.

In questo esempio, stai completando i dati delle vendite totali mancanti negli ultimi 15 giorni:

FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d

TIMESERIES e l'ordine delle colonne

A seconda che la parola chiave TIMESERIES venga fornita e sia presente nei valori GROUP BY o SHOW, l'ordine delle colonne può cambiare.

Esempi di TIMESERIES e di come l'ordine delle colonne viene visualizzato con GROUP BY o SHOW in ShopifyQL.
TIMESERIESSHOWGROUP BYRisultato
FornitaNon presenteNon presente TIMESERIES è la prima dimensione.
FornitaNon presentePresenteLa posizione delle dimensioni temporali è definita dalla sua posizione in GROUP BY.
FornitaPresentePresenteLa posizione delle dimensioni temporali è definita dalla sua posizione in SHOW.
Non fornitaNon presentePresenteLa posizione delle dimensioni temporali è definita dalla sua posizione in GROUP BY. I dati non sono completati.
Non fornitaPresentePresenteLa posizione delle dimensioni temporali è definita dalla sua posizione in SHOW. I dati non sono completati.
Non fornitaPresenteNon presenteAttiva un errore di sintassi perché SHOW può fare riferimento solo alle dimensioni presenti in GROUP BY.

HAVING

Similmente a WHERE, puoi utilizzare la parola chiave HAVING per filtrare i risultati di una query dopo che questi sono stati raggruppati. Il filtro può avere una condizione, ma può essere modificata sia dagli operatori di confronto (ad esempio greater than >) che dagli operatori logici (ad esempio AND o NOT). A differenza della parola chiave WHERE, HAVING può fare riferimento ad alias, funzioni aggregate e colonne di raggruppamento.

HAVING richiede che la query includa GROUP BY o TIMESERIES perché HAVING filtra i risultati di una query dopo che questi sono stati raggruppati in base a GROUP BY o TIMESERIES.

In questo esempio stai filtrando le vendite totali di ogni prodotto con vendite totali maggiori di 1000 e inferiori a 5000:

FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000

WITH

La parola chiave WITH modifica il comportamento di altre parole chiave di ShopifyQL. Esistono 3 modifiche disponibili:

  • TOTALS: fornisce un riepilogo di primo livello delle metriche prima che vengano suddivise in base a qualsiasi dimensione;
  • GROUP_TOTALS: fornisce un totale per tutti i sotto-raggruppamenti quando è presente un gruppo per aggregazione;
  • PERCENT_CHANGE: aggiunge una metrica della variazione percentuale a ogni colonna di confronto in COMPARE TO. Quando questo modificatore è presente, viene aggiunta una nuova colonna per ogni colonna della metrica di confronto, contenente la variazione percentuale.

TOTALS

Il modificatore TOTALS fornisce un riepilogo di primo livello delle metriche prima che vengano suddivise in base a qualsiasi dimensione. Quando usi WITH TOTALS, la query restituisce i totali come colonne aggiuntive nel set di risultati con il nome della metrica e "totali" come parte del nome della colonna. Ogni riga contiene tutti i totali applicabili.

Ad esempio, questa query mostra i totali delle vendite totali:

FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS

Questa query potrebbe restituire un report simile a questo:

Esempio di tabella delle vendite di ShopifyQL che utilizza WITH TOTALS.
GiornoFatturato lordoFatturato nettoVendite totaliTotali del fatturato lordoTotali del fatturato nettoTotali delle vendite totali
01-01-202414761524
01-02-202425861524
01-03-202436961524

GROUP_TOTALS

Il modificatore GROUP_TOTALS fornisce un totale per tutti i sotto-raggruppamenti quando è presente un gruppo per aggregazione. Quando usi WITH GROUP_TOTALS, la query restituisce i totali come colonne aggiuntive nel set di risultati con il nome della metrica, le dimensioni totalizzate e "totali" come parte del nome della colonna. Ogni riga contiene tutti i totali applicabili.

Ad esempio, questa query mostra un totale delle vendite totali in base al paese di fatturazione:

FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS

Questa query potrebbe restituire un report simile a questo:

Esempio di tabella delle vendite di ShopifyQL che utilizza GROUP_TOTALS.
NazioneID clienteVendite totaliTotali delle vendite totali per paeseTotali delle vendite totali
USA1101
USAzero-111
Canada1111

PERCENT_CHANGE

Il modificatore PERCENT_CHANGE aggiunge una metrica della variazione percentuale a ogni colonna di confronto quando utilizzi COMPARE TO. Quando utilizzi WITH PERCENT_CHANGE, la query restituisce la variazione percentuale per ogni metrica di confronto come colonne aggiuntive nel set di risultati con il nome della metrica e "variazione percentuale" come parte del nome della colonna.

La formula utilizzata per calcolare la variazione percentuale è: (base_column - comparison_column) * 100 / abs(comparison_column)

Ad esempio, questa query utilizza SINCE e COMPARE TO per confrontare il fatturato netto giornaliero del mese precedente con lo stesso mese dell'anno precedente, con una colonna relativa alla variazione percentuale:

FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year

Le colonne del report risultante includono data, fatturato netto, data di confronto, fatturato netto di confronto e variazione percentuale del fatturato netto.

SINCE e UNTIL

Se desideri filtrare la query in base a una data o a un determinato periodo di tempo, puoi utilizzare le parole chiave SINCE e UNTIL e i relativi parametri associati. Queste parole chiave sono univoche perché filtrano solo i periodi di tempo. Se utilizzi SINCE e non definisci un valore UNTIL, allora per impostazione predefinita la fine dell'intervallo di tempo sarà today.

Ad esempio, questa è una query per trovare il fatturato netto degli ultimi 12 mesi, in Canada, fino a ieri:

FROM orders
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month ALL
SINCE -12m
UNTIL yesterday

Operatori offset

Puoi filtrare in base a date specifiche o a offset di data e ora. Gli operatori offset di ShopifyQL sono:

Elenco degli operatori offset di ShopifyQL, ad esempio l'offset in base a secondi, minuti o una data specifica.
Operatore offsetDescrizione
-{#}sNumero di secondi trascorsi dalla data e ora in cui viene eseguita la query.
-{#}minNumero di minuti trascorsi dalla data e ora in cui viene eseguita la query.
-{#}hNumero di ore trascorse dalla data e ora in cui viene eseguita la query.
-{#}dNumero di giorni trascorsi dalla data e ora in cui viene eseguita la query.
-{#}wNumero di settimane trascorse dalla data e ora in cui viene eseguita la query.
-{#}mNumero di mesi trascorsi dalla data e ora in cui viene eseguita la query.
-{#}qNumero di trimestri trascorsi dalla data e ora in cui viene eseguita la query.
-{#}yNumero di anni trascorsi dalla data e ora in cui viene eseguita la query.
yyyy-MM-ddUna data specifica.
yyyy-MM-ddThh:mm:ssUna data e un'ora specifiche.

Funzioni data

Puoi utilizzare le seguenti funzioni combinate con qualsiasi operatore di intervallo di date (ad eccezione di date specifiche) in SINCE e UNTIL. Le funzioni "startOf..." vengono troncate all'inizio dell'unità di tempo associata (minuto, ora, giorno, settimana, mese, trimestre e anno) quando vengono utilizzate con SINCE e le funzioni "endOf..." vengono troncate alla fine dell'unità di tempo associata quando vengono utilizzate con UNTIL.

Le unità di funzione data e le unità operatore devono corrispondere per poter restituire un risultato valido. Ad esempio, startOfMonth(-1m) è corretto, ma startOfMonth(-1d) non lo è.

Elenco delle funzioni data di ShopifyQL, ad esempio end of day o start of quarter.
Funzione dataDescrizione
nowLa data e l'ora in cui viene eseguita la query.
startOfMinute(-{#}min)Tronca l'operatore dell'intervallo di date fino all'inizio del minuto di destinazione.
endOfMinute(-{#}min)Tronca l'operatore dell'intervallo di date fino alla fine del minuto di destinazione.
startOfHour(-{#}h)Tronca l'operatore dell'intervallo di date fino all'inizio dell'ora di destinazione.
endOfHour(-{#}h)Tronca l'operatore dell'intervallo di date fino alla fine dell'ora di destinazione.
startOfDay(-{#}d)Tronca l'operatore dell'intervallo di date fino all'inizio del giorno di destinazione.
endOfDay(-{#}d)Tronca l'operatore dell'intervallo di date fino alla fine del giorno di destinazione.
startOfWeek(-{#}w)Tronca l'operatore dell'intervallo di date fino all'inizio della settimana di destinazione.
endOfWeek(-{#}w)Tronca l'operatore dell'intervallo di date fino alla fine della settimana di destinazione.
startOfMonth(-{#}m)Tronca l'operatore dell'intervallo di date fino all'inizio del mese di destinazione.
endOfMonth(-{#}m)Tronca l'operatore dell'intervallo di date fino alla fine del mese di destinazione.
startOfQuarter(-{#}q)Tronca l'operatore dell'intervallo di date fino all'inizio del trimestre di destinazione.
endOfQuarter(-{#}q)Tronca l'operatore dell'intervallo di date fino alla fine del trimestre di destinazione.
startOfYear(-{#}y)Tronca l'operatore dell'intervallo di date fino all'inizio dell'anno di destinazione.
endOfYear(-{#}y)Tronca l'operatore dell'intervallo di date fino alla fine dell'anno di destinazione.

Ad esempio, se oggi è l'8 novembre 2022, puoi utilizzare la seguente query per restituire il fatturato lordo dal 1° gennaio 2020 al 31 ottobre 2022:

FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)

DURING

La parola chiave DURING semplifica il filtro delle date a seconda degli intervalli di date e sostituisce l'uso di SINCE e UNTIL. Puoi utilizzare la parola chiave DURING per filtrare i risultati della query in base a un periodo di tempo noto, ad esempio un anno di calendario o un mese specifico, o per intervalli di date con date diverse ogni anno, ad esempio Black Friday Cyber Monday. Per esempio:

FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021

Operatori dell'intervallo di date denominati

DURING accetta uno dei seguenti operatori di intervallo di date denominati:

Elenco degli operatori dell'intervallo di date denominati di ShopifyQL, ad esempio today, yesterday o this week.
Operatore dell'intervallo di date denominatoDescrizione
todayLa data in cui viene eseguita la query.
yesterdayLe 24 ore che precedono il momento in cui viene eseguita la query.
this_weekLa settimana di calendario attuale.
this_monthIl mese di calendario attuale.
this_quarterIl trimestre di calendario attuale.
this_yearL'anno solare corrente.
last_weekLa settimana di calendario precedente.
last_monthIl mese di calendario precedente.
last_quarterIl trimestre di calendario precedente.
last_yearL'anno solare precedente.
bfcmYYYYL'intervallo di date del Black Friday Cyber Monday in base all'anno specificato. Ad esempio, i risultati bfcm2022 dal 25 al 28 novembre 2022.

COMPARE TO

La parola chiave COMPARE TO ti consente di confrontare i dati nell'intervallo di date in SINCE e UNTIL o DURING e quello in COMPARE TO.

Puoi utilizzare la parola chiave COMPARE TO con i seguenti tipi di parametri:

  • Date assolute, ad esempio 2023-01-01: include le metriche per il periodo specificato e le metriche di confronto per lo stesso periodo nella data assoluta.
  • Date definite, ad esempio last_week: include le metriche per il periodo specificato e le metriche di confronto per lo stesso periodo nella data definita.

    • L'operatore utilizzato da COMPARE TO non deve avere la stessa durata di quello utilizzato da DURING. Se non viene fornito nessun valoreUNTIL, calcola l'intervallo di tempo in modo che sia uguale al valore specificato in DURING. Ad esempio, DURING this_week COMPARE TO last_month confronta i dati di questa settimana con un periodo di una settimana che inizia all'inizio del mese scorso.
  • Date di offset, ad esempio -3q: include le metriche per il periodo specificato e le metriche di confronto per lo stesso periodo nella data definita.

  • Confronti con più date, ad esempio -1y, -2y: confronta i dati di un intervallo di date specifico con altri intervalli di date. Questa operazione può risultare utile se desideri monitorare le modifiche in più periodi.

  • Se utilizzi una dimensione data in una query con COMPARE TO, devi utilizzare TIMESERIES al suo posto, anziché GROUP BY.

L'esempio seguente confronta il fatturato netto del mese precedente con lo stesso mese dell'anno precedente:

FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year

Operatori dell'intervallo di date relativo

Gli operatori relativi restituiscono lo stesso periodo di tempo dell'intervallo di date di base, spostato indietro per il periodo specificato. Oltre agli operatori dell'intervallo di date denominati, COMPARE TO accetta i seguenti operatori relativi:

Elenco degli operatori dell'intervallo di date relativi di ShopifyQL, come previous period o previous year.
Operatore dell'intervallo di date relativoDescrizione
previous_periodUn periodo prima dell'intervallo di date di base.
previous_yearUn anno prima dell'intervallo di date di base.
previous_quarterUn trimestre prima dell'intervallo di date di base.
previous_monthUn mese prima dell'intervallo di date di base.
previous_weekUna settimana prima dell'intervallo di date di base.
previous_dayUn giorno prima dell'intervallo di date di base.
previous_hourUn'ora prima dell'intervallo di date di base.
previous_minuteUn minuto prima dell'intervallo di date di base.
previous_secondUn secondo prima dell'intervallo di date di base.

ORDER BY

Puoi specificare come desideri ordinare i dati restituiti dalla query utilizzando la parola chiave ORDER BY e i relativi parametri: ASC, per l'ordine crescente e DESC, per l'ordine decrescente.

Nella parola chiave ORDER BY puoi specificare ogni metrica o dimensione inclusa nella query, anche specificando più campi.

Ad esempio, questa query restituisce il fatturato netto di tutti i prodotti e le varianti nel corso dell'ultimo anno. I risultati vengono prima ordinati in ordine alfabetico per titolo del prodotto e quindi in ordine alfabetico inverso per tipo di prodotto:

FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC

L'ordine in cui scrivi le metriche o le dimensioni è importante: se specifichi più valori per ORDER BY, l'ordinamento viene applicato per ciascuna metrica o dimensione nell'ordine fornito.

TIMESERIES e l'ordine delle colonne

A seconda che la query includa o meno TIMESERIES e ORDER BY, l'ordine delle colonne può cambiare.

Esempio di TIMESERIES e dell'ordine delle colonne quando ORDER BY è presente utilizzando ShopifyQL.
TIMESERIESORDER BYRisultato
PresenteNon presenteI risultati sono ordinati in base alla dimensione TIMESERIES.
PresentePresenteI risultati sono ordinati in base alla dimensione temporale TIMESERIES, quindi in base alla dimensione ORDER BY.
Non presentePresenteI risultati sono ordinati in base alla dimensione ORDER BY.
Non presenteNon presenteI risultati sono ordinati in base alla prima colonna SHOW.

LIMIT

La parola chiave LIMIT ti consente di specificare il numero massimo di righe restituite dalla query. Questa operazione risulta utile quando desideri solo capire l'aspetto dei dati di ogni colonna o per i report più grandi in cui le query possono restituire i valori impiegando più tempo del normale. Puoi combinare LIMIT con ORDER BY per creare elenchi con classifiche.

Se non si specifica un valore LIMIT, per impostazione predefinita la query è di 1000 righe.

Puoi anche utilizzare un parametro { OFFSET # } facoltativo per saltare un certo numero di righe prima di iniziare a restituire i dati delle righe. La formattazione della frase risultante potrebbe essere simile a questa: LIMIT 15 { OFFSET 5 }.

Questo esempio utilizza LIMIT e ORDER BY per creare un elenco dei 10 prodotti più venduti negli ultimi 3 mesi:

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 e TYPE

La parola chiave VISUALIZE ti consente di scrivere una query di ShopifyQL che fornisce una visualizzazione grafica dei dati. Le visualizzazioni supportate includono i seguenti valori:

  • 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

La parola chiave TYPE è facoltativa e deve essere accompagnata da un unico tipo di visualizzazione. Se TYPE non è inclusa nella tua query, ShopifyQL sceglie automaticamente la visualizzazione più adatta alla query. Se la tua query non può essere visualizzata in forma scritta, ShopifyQL restituisce i dati in formato di tabella.

VISUALIZE accetta anche una parola chiave LIMIT facoltativa dove il parametro è il numero limitato di punti dati su cui eseguire il rendering.

Ad esempio, puoi visualizzare il trend di vendita dell'ultimo anno per mese tramite una linea del trend. Questa query restituisce un grafico della serie temporale che mostra il fatturato lordo mensile nell'ultimo anno. Il fatturato lordo è raffigurato da una singola linea, con l'asse X che rappresenta il mese e l'asse Y che rappresenta il fatturato lordo:

FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line

AS

AS è una parola chiave facoltativa che ti consente di rinominare o fornire un alias a una colonna o il valore restituito di una funzione aggregata.

AS accetta un solo parametro. Se nel nome c'è uno spazio, devi racchiudere l'alias tra virgolette doppie (").

FROM sales
SHOW total_sales AS "My Total Sales"

Altre funzioni e operatori di ShopifyQL

ShopifyQL include i seguenti operatori e funzioni aggiuntivi:

Operatori matematici

ShopifyQL consente di effettuare operazioni aritmetiche con le metriche dei tuoi dati. Sono disponibili i seguenti operatori aritmetici:

Elenco degli operatori matematici di ShopifyQL, inclusi i plus e i meno.
Operatori aritmeticiDescrizione
+Addizione di due numeri.
-Sottrazione di due numeri.
*Moltiplicazione di due numeri.
/Divisione di due numeri.

Ad esempio, questa query calcola il valore dell'ordine per ogni area geografica nel corso dell'ultimo anno. Quando utilizzi gli operatori matematici con le metriche, puoi utilizzare la parola chiave AS per assegnare un nuovo nome alla nuova metrica.

FROM sales
SHOW (net_sales + returns) AS order_value, orders, (net_sales + returns)/orders AS sales_per_order
GROUP BY billing_region
SINCE -1y
UNTIL today

Funzioni

Le funzioni di ShopifyQL ti permettono di aggregare colonne o combinarle per creare un nuovo valore, in modo simile alle tabelle pivot di Microsoft Excel. Nella versione attuale di ShopifyQL sono disponibili i seguenti operatori di funzione:

Elenco delle funzioni di ShopifyQL supportate, come trimming e rounding.
Operatore di funzioneDescrizione
TRIM(column_name)Rimuove gli spazi vuoti iniziali e finali da una stringa.
ROUND(column_name, decimal_places)Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
  • If decimal_places > 0, then the function rounds the value to the right of the decimal point.
  • If decimal_places < 0, then the function rounds the value to the left of the decimal point.
  • If decimal_places = 0, then the function rounds the value to integer. In this case, the argument can be omitted entirely.

For example, this query uses the rounding function on the gross_sales column, but omits the decimal_places argument to round the value to the integer:

FROM sales
SHOW average_order_value, round(gross_sales)
GROUP BY billing_region
SINCE 2021-01-01
UNTIL 2021-12-31

Implicit joins

A join allows you to view metrics from different domains together, side by side. Joins are done implicitly and intelligently in ShopifyQL.

ShopifyQL has the following join capabilities:

  • ShopifyQL allows dimension field joins when there is a single FROM table in the query.
  • Automatic left join on dimension fields.
  • ShopifyQL allows multi-fact joins (when there are multiple FROM tables in the queries).
  • Automatic full join on multi-fact joins, which support any number of tables or schemas and grouped by dimensions.
  • Metrics in multi-fact joins can use functions and math.

Shopify QL has the following join restrictions:

  • Join field must have the same name in all joined schemas.
  • Join field must be in GROUP BY.
  • Join field can't use functions or math.
  • FROM is necessary for multi-fact joins to work.
  • In a multi-fact join, every GROUP BY must be in all schemas and is considered a field on which to be joined.

For example, this query uses a multi-fact join:

FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day

Partial string and array matching

You can use the following operators for partial string and array matching:

List of Partial string and array matching operators in ShopifyQL.
OperatorDescription
STARTS WITHReturn all rows where a column starts with a prefix.
ENDS WITHReturn all rows where a column ends with a suffix.
CONTAINSReturn all rows where a column contains a part of a string, or an element in an array.

Some examples of partial string matching using operators include the following queries:

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

The CONTAINS operator can be used to match elements within arrays, including integers, strings, and decimals. This matching isn't case-sensitive. Some examples of array matching using CONTAINS include the following queries:

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

Comments

You can use comments to explain sections of ShopifyQL statements, or to prevent the execution of a ShopifyQL statement. Any text within a comment will be ignored during execution time.

Single line comments start with -- and end at the end of the line.

Multi-line comments start with /* and end with */.

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
*/
Non trovi le risposte che stai cercando? Siamo qui per aiutarti.