Utilizzo dell'editor di query di ShopifyQL
<<<<<<< HEAD:content/it/manual/reports-and-analytics/shopify-reports/new-analytics/shopifyql-editor.md
======= >>>>>>> a8772b4ba2f5 (Relocated all the pages from /new-analytics/ to existing folders.):content/it/manual/reports-and-analytics/shopify-reports/report-types/shopifyql-editor.mdPuoi 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
Termine | Definizione |
---|---|
Dimensione | Attributo 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 chiave | Sintassi di ShopifyQL che agisce come comando per indirizzare la query. |
Metrica | Misurazione quantitativa dei dati. Esempi comuni di metriche includono le vendite totali, il numero di ordini e il profitto lordo. |
Parametro | Sintassi di ShopifyQL che identifica gli elementi o i dati del database da includere nella query. |
Operatore | Parola o carattere riservato utilizzato come parte di una query. Alcuni esempi includono STARTS WITH , >= o last_week . |
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
eSHOW
, 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.TIMESERIES
6.WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
7.HAVING
8.SINCE
&UNTIL
, oDURING
9.COMPARE TO
& facoltativoUNTIL
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.
Parola chiave | Descrizione |
---|---|
FROM | Specifica la tabella di set di dati da cui selezionare i dati. |
SHOW | Seleziona le colonne che desideri estrarre dalla tabella di set di dati. |
WHERE | Definisce la condizione o le condizioni che le righe devono soddisfare per poter essere selezionate. |
GROUP BY | Raggruppa i dati estratti in base a una dimensione o a dimensioni di tempo. |
TIMESERIES | Distingue il raggruppamento per dimensioni temporali e completa le date in una query. |
WITH | Modifica il comportamento di alcune parole chiave di ShopifyQL. |
HAVING | Filtra i risultati di una query dopo che sono stati raggruppati. |
SINCE | Mostra i dati relativi a un periodo di tempo specificato nel passato. Spesso associato a UNTIL . |
UNTIL | Mostra i dati fino a un'ora specificata nel passato. Spesso associato a SINCE o COMPARE TO . |
DURING | Mostra i dati durante un momento specifico del passato. |
COMPARE TO | Mostra i dati da confrontare con un orario specificato nel passato. |
ORDER BY | Specifica la colonna in base a cui ordinare i dati. |
LIMIT | Limita il numero di righe di dati mostrate. |
VISUALIZE | Mostra i dati in una visualizzazione a linee o a barre. Puoi specificare quale visualizzazione desideri con TYPE . |
AS | Una parola chiave facoltativa che rinomina una colonna con un nome a tua scelta. |
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'
GROUP BY product_title, product_type, product_vendor
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:
Operatore di confronto | Descrizione |
---|---|
= | uguale a |
!= | non uguale a |
< | minore di |
> | maggiore di |
<= | minore di o uguale a |
>= | maggiore di o uguale a |
Per filtrare ulteriormente i dati, puoi aggiungere operatori logici alla query. Gli operatori logici di ShopifyQL sono:
Operatore logico | Descrizione |
---|---|
AND | Filtro per includere tutte le righe in cui le condizioni separate da AND sono soddisfatte. |
OR | Filtro per includere tutte le righe in cui una delle condizioni separate da OR è soddisfatta. |
NOT | Filtro 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 is_discounted_sale = true
GROUP BY product_title, product_type, product_vendor
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:
Operatore | Descrizione |
---|---|
second | Raggruppamento per secondo. |
minute | Raggruppamento per minuto. |
hour | Raggruppamento per ora del giorno di calendario. |
day | Raggruppamento per giorno di calendario. |
week | Raggruppamento per settimana di calendario. |
month | Raggruppamento per mese di calendario. |
quarter | Raggruppamento per trimestre di calendario. |
year | Raggruppamento per anno di calendario. |
hour_of_day | Raggruppamento a base zero per 24 ore (0, 1, ..., 23). |
day_of_week | Raggruppamento a base zero per giorno della settimana (0, 1, ..., 6). |
week_of_year | Raggruppamento per settimana dell'anno (1, 2, ..., 52). |
month_of_year | Raggruppamento per mese dell'anno (1, 2, ..., 12). |
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.
TIMESERIES | SHOW | GROUP BY | Risultato |
---|---|---|---|
Fornita | Non presente | Non presente |
TIMESERIES è la prima dimensione. |
Fornita | Non presente | Presente | La posizione delle dimensioni temporali è definita dalla sua posizione in GROUP BY . |
Fornita | Presente | Presente | La posizione delle dimensioni temporali è definita dalla sua posizione in SHOW . |
Non fornita | Non presente | Presente | La posizione delle dimensioni temporali è definita dalla sua posizione in GROUP BY . I dati non sono completati. |
Non fornita | Presente | Presente | La posizione delle dimensioni temporali è definita dalla sua posizione in SHOW . I dati non sono completati. |
Non fornita | Presente | Non presente | Attiva un errore di sintassi perché SHOW può fare riferimento solo alle dimensioni presenti in GROUP BY . |
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 inCOMPARE 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:
Giorno | Fatturato lordo | Fatturato netto | Vendite totali |
---|---|---|---|
Riepilogo | 6 | 15 | 24 |
01-01-2024 | 1 | 4 | 7 |
01-02-2024 | 2 | 5 | 8 |
01-03-2024 | 3 | 6 | 9 |
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:
Nazione | ID cliente | Vendite totali |
---|---|---|
Riepilogo (USA + Canada) | - | 1 |
Totali del gruppo USA | - | 0 |
USA | 1 | 1 |
USA | zero | -1 |
Totali del gruppo Canada | - | 1 |
Canada | 1 | 1 |
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 sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
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:
Operatore offset | Descrizione |
---|---|
-{#}s | Numero di secondi trascorsi dalla data e ora in cui viene eseguita la query. |
-{#}min | Numero di minuti trascorsi dalla data e ora in cui viene eseguita la query. |
-{#}h | Numero di ore trascorse dalla data e ora in cui viene eseguita la query. |
-{#}d | Numero di giorni trascorsi dalla data e ora in cui viene eseguita la query. |
-{#}w | Numero di settimane trascorse dalla data e ora in cui viene eseguita la query. |
-{#}m | Numero di mesi trascorsi dalla data e ora in cui viene eseguita la query. |
-{#}q | Numero di trimestri trascorsi dalla data e ora in cui viene eseguita la query. |
-{#}y | Numero di anni trascorsi dalla data e ora in cui viene eseguita la query. |
yyyy-MM-dd | Una data specifica. |
yyyy-MM-ddThh:mm:ss | Una data e un'ora specifiche. |
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 è.
Funzione data | Descrizione |
---|---|
now | La 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. |
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:
Operatore dell'intervallo di date denominato | Descrizione |
---|---|
today | La data in cui viene eseguita la query. |
yesterday | Le 24 ore che precedono il momento in cui viene eseguita la query. |
this_week | La settimana di calendario attuale. |
this_month | Il mese di calendario attuale. |
this_quarter | Il trimestre di calendario attuale. |
this_year | L'anno solare corrente. |
last_week | La settimana di calendario precedente. |
last_month | Il mese di calendario precedente. |
last_quarter | Il trimestre di calendario precedente. |
last_year | L'anno solare precedente. |
bfcmYYYY | L'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 daCOMPARE TO
non deve avere la stessa durata di quello utilizzato daDURING
. Se non viene fornito nessun valoreUNTIL
, calcola l'intervallo di tempo in modo che sia uguale al valore specificato inDURING
. 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 utilizzareTIMESERIES
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:
Operatore dell'intervallo di date relativo | Descrizione |
---|---|
previous_period | Un periodo prima dell'intervallo di date di base. |
previous_year | Un anno prima dell'intervallo di date di base. |
previous_quarter | Un trimestre prima dell'intervallo di date di base. |
previous_month | Un mese prima dell'intervallo di date di base. |
previous_week | Una settimana prima dell'intervallo di date di base. |
previous_day | Un giorno prima dell'intervallo di date di base. |
previous_hour | Un'ora prima dell'intervallo di date di base. |
previous_minute | Un minuto prima dell'intervallo di date di base. |
previous_second | Un secondo prima dell'intervallo di date di base. |
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.
TIMESERIES | ORDER BY | Risultato |
---|---|---|
Presente | Non presente | I risultati sono ordinati in base alla dimensione TIMESERIES . |
Presente | Presente | I risultati sono ordinati in base alla dimensione temporale TIMESERIES , quindi in base alla dimensione ORDER BY . |
Non presente | Presente | I risultati sono ordinati in base alla dimensione ORDER BY . |
Non presente | Non presente | I risultati sono ordinati in base alla prima colonna SHOW . |
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 un'espressione.
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"
Altri operatori ShopifyQL
ShopifyQL include i seguenti operatori aggiuntivi:
- Operatori matematici, ad esempio
+
o/
- Unioni implicite
- Corrispondenza parziale di stringa e matrice, ad esempio
STARTS WITH
eCONTAINS
- Commenti
Operatori matematici
ShopifyQL consente di effettuare operazioni aritmetiche con le metriche dei tuoi dati. Sono disponibili i seguenti operatori aritmetici:
Operatori aritmetici | Descrizione |
---|---|
+ | 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 ciascuna area geografica nell'ultimo anno. Quando si utilizzano operatori matematici con le metriche, è possibile utilizzare la parola chiave AS
per assegnare un nuovo nome alla nuova metrica. Si prega di notare che l'uso delle espressioni matematiche presenta delle limitazioni.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Unioni implicite
Le operazioni join consentono di visualizzare insieme, affiancandole, le metriche di domini diversi. In ShopifyQL le operazioni join vengono eseguite in modo implicito e intelligente.
ShopifyQL offre le seguenti funzionalità join:
- ShopifyQL consente le operazioni join sui campi di dimensione quando nella query è presente una singola tabella
FROM
. - Left join automatico sui campi di dimensione.
- ShopifyQL consente join multifatto (quando nelle query sono presenti più tabelle
FROM
). - Full join automatico su join multifatto, che supportano qualsiasi numero di tabelle o schemi e sono raggruppati per dimensioni.
- Le metriche nei join multifatto possono utilizzare la matematica.
Shopify QL presenta le seguenti restrizioni per le operazioni join:
- Il campo join deve avere lo stesso nome in tutti gli schemi uniti.
- Il campo join deve trovarsi in
GROUP BY
. - Il campo join non può utilizzare la matematica.
FROM
è necessario per il funzionamento dei join multifatto.- In un join multifatto, ogni
GROUP BY
deve essere presente in tutti gli schemi ed è considerato un campo su cui effettuare l'unione.
Ad esempio, la query seguente utilizza un join multifatto:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Ricerca di stringhe parziali e array corrispondenti
Per la ricerca di stringhe parziali e array corrispondenti, è possibile usare gli operatori seguenti:
Operatore | Descrizione |
---|---|
STARTS WITH | Restituisce tutte le righe in cui una colonna inizia con un prefisso. |
ENDS WITH | Restituisce tutte le righe in cui una colonna termina con un suffisso. |
CONTAINS | Restituisce tutte le righe in cui una colonna contiene una parte di una stringa o un elemento in un array. |
Le query seguenti sono alcuni esempi di ricerca di stringhe parziali corrispondenti mediante operatori:
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
L'operatore CONTAINS
può essere usato per trovare elementi corrispondenti all'interno degli array, inclusi numeri interi, stringhe e decimali. La corrispondenza non tiene conto della differenza fra maiuscole e minuscole. Le query seguenti sono alcuni esempi di ricerca di array corrispondenti mediante l'operatore CONTAINS
:
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'
Commenti
Puoi utilizzare i commenti per spiegare le sezioni delle istruzioni ShopifyQL o per impedire l'esecuzione di un'istruzione ShopifyQL. Qualsiasi testo all'interno di un commento verrà ignorato durante il tempo di esecuzione.
I commenti su una singola riga iniziano con --
e terminano alla fine della riga.
I commenti su più righe iniziano con /*
e terminano con */
.
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
*/