Utiliser l’éditeur de requête ShopifyQL
Vous pouvez utiliser ShopifyQL avec les nouvelles analyses de données Shopify pour explorer la base de données de votre entreprise et récupérer les données qui vous permettent d’acquérir une connaissance plus approfondie de votre entreprise.
ShopifyQL, ou le langage de requête Shopify, est le langage de requête de Shopify conçu pour le commerce. Les langages de requête sont utilisés pour demander et récupérer des données dans les bases de données. Les données de votre boutique sont stockées dans des tables de base de données, structurées en colonnes et lignes définies. Les colonnes définissent le type d’informations qu’elles contiennent, telles que les ventes, et les lignes précisent la valeur réelle du type de données, par exemple 2 450 USD de ventes.
Pour récupérer vos données dans un format cohérent, vous devez soumettre une requête à la base de données. Une requête est une question qui demande une réponse sous forme de données spécifiques, composée de mots-clés et de leurs paramètres correspondants. La combinaison de plusieurs mots-clés avec des paramètres spécifiques construit votre requête. Une fois votre requête conçue, vous pouvez l’exécuter et recevoir un rapport.
Sur cette page
Glossaire de termes
Terme | Définition |
---|---|
Dimension | Un attribut qui segmente les données afin qu’elles puissent être triées et présentées plus clairement. Les exemples courants de dimensions comprennent l’heure, les produits et les lieux. Les dimensions sont utilisées comme paramètres dans ShopifyQL. |
Mot-clé | Syntaxe ShopifyQL qui agit comme une commande pour diriger votre requête. |
Indicateur | Une mesure quantitative de données. Les exemples courants d’indicateurs comprennent les ventes totales, le nombre de commandes et le bénéfice brut. |
Paramètre | Syntaxe ShopifyQL qui identifie les éléments ou les détails de la base de données à inclure dans votre requête. |
Opérateur | Un mot ou un caractère réservé qui est utilisé dans le cadre d’une requête. Par exemple STARTS WITH , >= ou last_week . |
Syntaxe ShopifyQL
Vous devez répondre aux exigences suivantes lorsque vous créez une requête de rapport valide à l’aide de ShopifyQL :
- Vous pouvez placer une requête entière sur une ligne ou sur des lignes distinctes.
- Vous devez inclure au moins les mots-clés
FROM
etSHOW
, avec leurs paramètres appropriés. Tous les autres mots-clés et paramètres sont facultatifs. - Tous les mots-clés d’une requête doivent être inclus dans l’ordre suivant :
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
TIMESERIES
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
HAVING
-
SINCE
etUNTIL
ouDURING
-
COMPARE TO
et facultatifUNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
etTYPE
-
Voici un exemple de ShopifyQL, écrit sous forme de requête en utilisant la syntaxe correcte. Les mots-clés sont en gras, leurs paramètres correspondants sont inclus en utilisant des paramètres fictifs génériques, et les paramètres optionnels sont entre accolades :
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
Mots-clés ShopifyQL
Les requêtes ShopifyQL peuvent être basiques, pour des analyses de données globales, ou plus complexes, pour des analyses détaillées. Chaque mot–clé a une fonction spécifique permettant de construire votre requête.
Mot-clé | Description |
---|---|
FROM | Indique la table de données à partir de laquelle sélectionner les données. |
SHOW | Sélectionne les colonnes que vous souhaitez extraire de la table de données. |
WHERE | Définit la condition ou les conditions que les lignes doivent satisfaire pour être sélectionnées. |
GROUP BY | Regroupe les données extraites par une dimension ou des dimensions temporelles. |
TIMESERIES | Distingue le regroupement par dimensions temporelles et complète les dates dans une requête. |
WITH | Modifie le comportement de certains mots-clés ShopifyQL. |
HAVING | Filtre les résultats d’une requête après qu’ils ont été regroupés. |
SINCE | Affiche les données depuis un moment spécifié dans le passé. Souvent associé à UNTIL . |
UNTIL | Affiche les données jusqu’à un moment spécifié dans le passé. Souvent associé à SINCE ou COMPARE TO . |
DURING | Affiche les données pour une période spécifiée dans le passé. |
COMPARE TO | Affiche les données pour les comparer avec un moment spécifié dans le passé. |
ORDER BY | Indique par quelle colonne ordonner les données. |
LIMIT | Limite le nombre de lignes de données affichées. |
VISUALIZE | Affiche vos données dans une visualisation en ligne ou à barres. Vous pouvez spécifier la visualisation que vous souhaitez avec TYPE . |
AS | Un mot-clé facultatif qui donne à une colonne le nom de votre choix. |
FROM et SHOW
Pour créer la requête ShopifyQL la plus simple, deux mots–clés suffisent : FROM
et SHOW
, écrits dans cet ordre. FROM
, suivi d’un ou plusieurs paramètres de nom de table, indique la table que vous souhaitez interroger. SHOW
, suivi d’un ou plusieurs paramètres de nom de colonne, indique les colonnes que vous souhaitez sélectionner.
SHOW
peut être utilisé pour spécifier l’ordre dans lequel les indicateurs et les dimensions sont renvoyés dans le rapport.
Par exemple, vous pouvez obtenir la somme des ventes totales en écrivant cette requête :
FROM sales
SHOW total_sales
WHERE
Le mot-clé WHERE
vous permet d’appliquer un filtre dimensionnel à une requête ShopifyQL entière. Le filtre peut être modifié par des opérateurs de comparaison (tels que supérieur à >
), des opérateurs logiques (tels que AND
ou NOT
) et des correspondances partielles de chaînes et de tableaux (telles que STARTS WITH
et CONTAINS
).
WHERE
les conditions doivent répondre aux exigences suivantes :
- Les valeurs doivent être placées entre guillemets simples (') et non doubles (").
- Les conditions ne peuvent pas contenir d’opérations arithmétiques.
- Les conditions ne peuvent faire référence qu’à une dimension, et non à un indicateur.
Par exemple, si vous souhaitez obtenir les ventes totales, mais filtrées en fonction du pays de facturation, votre requête est :
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'
GROUP BY product_title, product_type, product_vendor
Comme dans l’exemple ci-dessus, vous pouvez filtrer l’ensemble de résultats avec le paramètre WHERE
, même si ce paramètre n’est pas inclus dans le mot-clé SHOW
. Dans ce cas, les ventes totales sont filtrées pour les commandes provenant du Canada uniquement, même si billing_country
n’est pas inclus dans l’ensemble de résultats.
Opérateurs de comparaison
Le mot-clé WHERE
utilise des opérateurs de comparaison pour filtrer les données. Dans l’exemple ci-dessus, =
a été utilisé pour spécifier que la requête filtre selon une valeur spécifique. Cependant, d’autres opérateurs sont à votre disposition :
Opérateur de comparaison | Description |
---|---|
= | : |
!= | n'est pas |
< | est inférieur(e) à |
> | est supérieur(e) à |
<= | est inférieur(e) ou égal(e) à |
>= | est supérieur(e) ou égal(e) à |
Opérateurs logiques
Pour filtrer davantage vos données, vous pouvez ajouter des opérateurs logiques à votre requête. Les opérateurs logiques de ShopifyQL sont les suivants :
Opérateur logique | Description |
---|---|
AND | Filtre pour inclure toutes les lignes où les conditions séparées par AND sont remplies. |
OR | Filtre pour inclure toutes les lignes où l’une des conditions séparées par OR est remplie. |
NOT | Filtre pour inclure uniquement les lignes où les conditions ne sont pas remplies, par exemple les lignes qui ne contiennent pas la valeur spécifiée. |
Vous pouvez utiliser plusieurs filtres avec le mot-clé WHERE
en ajoutant des opérateurs logiques.
En ajoutant à l’exemple de requête de jeu de données, afin d’obtenir un regroupement mensuel des ventes nettes pour toutes les commandes contenant des pêches séchées dont l’adresse de facturation se trouve au Canada et pour lesquelles une remise a été appliquée, la requête est :
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
Pour segmenter un indicateur par une dimension, par exemple pour regrouper les ventes par région, utilisez le mot-clé GROUP BY
. Le mot-clé GROUP BY
peut être associé à n’importe quel paramètre de dimension.
Par exemple, une requête qui regroupe les ventes totales par pays et région de facturation est écrite ainsi :
FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region
Voici un autre exemple de requête qui utilise une dimension de temps pour afficher les ventes totales par mois :
FROM sales
SHOW total_sales
GROUP BY month
La requête ci-dessus ne prend pas en compte les mois où vous n’avez aucune vente. Si vous souhaitez que la requête prenne en compte une période complète et continue, utilisez le mot-clé TIMESERIES
.
FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today
Dimensions temporelles
Voici les dimensions de temps que vous pouvez utiliser pour regrouper vos données :
Opérateur | Description |
---|---|
second | Regroupement par seconde de l’heure. |
minute | Regroupement par minute de l’heure. |
hour | Regroupement par heure de jour civil. |
day | Regroupement par jour civil. |
week | Regroupement par semaine civile. |
month | Regroupement par mois civil. |
quarter | Regroupement par trimestre civil. |
year | Regroupement par année civile. |
hour_of_day | Regroupement à partir de zéro par 24 heures (0, 1, ..., 23). |
day_of_week | Regroupement à partir de zéro par jour de la semaine (0, 1, ... , 6). |
week_of_year | Regroupement par semaine de l’année (1, 2, ..., 52). |
month_of_year | Regroupement par mois de l’année (1, 2, ..., 12). |
TIMESERIES
Vous pouvez utiliser le mot-clé TIMESERIES
lorsque vous souhaitez distinguer le regroupement par dimensions temporelles, afficher les indicateurs au fil du temps et compléter les dates dans une requête pour les transformer en un graphique timeseries quand les données n’existent pas.
Dans cet exemple, vous complétez les données de ventes totales manquantes au cours des 15 derniers jours :
FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d
TIMESERIES et l’ordre des colonnes
Selon que le TIMESERIES
est donné ou non et présent dans les valeurs GROUP BY
ou SHOW
, l’ordre des colonnes peut changer.
TIMESERIES | SHOW | GROUP BY | Résultat |
---|---|---|---|
Donné | Non présent | Non présent | Le TIMESERIES est la première dimension. |
Donné | Non présent | Présent | La position de la dimension temporelle est définie par sa position dans GROUP BY . |
Donné | Présent | Présent | La position de la dimension temporelle est définie par sa position dans SHOW . |
Non donné | Non présent | Présent | La position de la dimension temporelle est définie par sa position dans GROUP BY . Les données ne sont pas complétées. |
Non donné | Présent | Présent | La position de la dimension temporelle est définie par sa position dans SHOW . Les données ne sont pas complétées. |
Non donné | Présent | Non présent | Déclenche une erreur de syntaxe, car SHOW ne peut faire référence qu’à des dimensions présentes dans GROUP BY . |
HAVING
Tout comme WHERE
, vous pouvez utiliser le mot-clé HAVING
pour filtrer les résultats d’une requête après qu’ils ont été regroupés. Le filtre ne peut avoir qu’une seule condition, mais celle-ci peut être modifiée par des opérateurs de comparaison (tels que supérieur à >
) et des opérateurs logiques (tels que AND
ou NOT
. Contrairement au mot-clé WHERE
, HAVING
peut faire référence à des alias, à des fonctions agrégées et à des colonnes de regroupement.
HAVING
exige que votre requête comprenne une clause GROUP BY
ou TIMESERIES
car HAVING
filtre les résultats d’une requête après qu’ils ont été regroupés par GROUP BY
ou TIMESERIES
.
Dans cet exemple, vous filtrez les ventes totales pour chaque produit dont les ventes totales sont supérieures à 1 000 et inférieures à 5 000 :
FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000
WITH
Le mot-clé WITH
modifie le comportement de certains autres mots-clés de ShopifyQL. Il existe 3 modifications disponibles :
-
TOTALS
: fournit un résumé de haut niveau des indicateurs avant qu’ils ne soient ventilés par dimension. -
GROUP_TOTALS
: fournit un total pour tous les sous-groupes lorsqu’il y a une agrégation de regroupement. -
PERCENT_CHANGE
: ajoute un indicateur de changement en pourcentage à chaque colonne de comparaison dansCOMPARE TO
. Lorsque ce modificateur est présent, une nouvelle colonne est ajoutée pour chaque colonne d’indicateur de comparaison contenant le changement en pourcentage.
TOTALS
Le modificateur TOTALS
fournit un résumé de haut niveau des indicateurs avant qu’ils ne soient ventilés par dimension. Lorsque vous utilisez WITH TOTALS
, la requête renvoie les totaux sous forme de colonnes supplémentaires dans l’ensemble de résultats avec le nom de l’indicateur et « totals » comme partie du nom de la colonne. Chaque ligne contient tous les totaux applicables.
Par exemple, cette requête affiche les totaux des ventes totales :
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
Cette requête pourrait renvoyer un rapport similaire à celui-ci :
Jour | Ventes brutes | Ventes nettes | Ventes totales |
---|---|---|---|
Résumé | 6 | 15 | 24 |
2024-01-01 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
2024-01-03 | 3 | 6 | 9 |
GROUP_TOTALS
Le modificateur GROUP_TOTALS
fournit un total pour tous les sous-groupes lorsqu’il y a une agrégation de regroupement. Lorsque vous utilisez WITH GROUP_TOTALS
, la requête renvoie les totaux sous forme de colonnes supplémentaires dans l’ensemble de résultats avec le nom de l’indicateur, les dimensions totalisées et « totals » comme partie du nom de la colonne. Chaque ligne contient tous les totaux applicables.
Par exemple, cette requête affiche le total des ventes totales par pays de facturation :
FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS
Cette requête pourrait renvoyer un rapport similaire à celui-ci :
Pays | Identifiant du client | Ventes totales |
---|---|---|
Synthèse (États-Unis + Canada) | - | 1 |
Totaux du groupe États-Unis | - | 0 |
États-Unis | 1 | 1 |
États-Unis | nul | -1 |
Totaux du groupe Canada | - | 1 |
Canada | 1 | 1 |
PERCENT_CHANGE
Le modificateur PERCENT_CHANGE
ajoute un indicateur de changement en pourcentage à chaque colonne de comparaison lorsque vous utilisez COMPARE TO
. Lorsque vous utilisez WITH PERCENT_CHANGE
, la requête renvoie le changement en pourcentage pour chaque indicateur de comparaison sous forme de colonnes supplémentaires dans l’ensemble de résultats avec le nom de l’indicateur et « percent change » comme partie du nom de la colonne.
La formule utilisée pour calculer le changement en pourcentage est la suivante : (base_column - comparison_column) * 100 / abs(comparison_column)
Par exemple, cette requête utilise SINCE
et COMPARE TO
pour comparer les ventes nettes par jour du mois précédent à celles du même mois de l’année précédente, avec une colonne pour le changement en pourcentage :
FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Les colonnes du rapport résultant comprennent le jour, les ventes nettes, le jour de comparaison, les ventes nettes de comparaison et le changement en pourcentage des ventes nettes.
SINCE et UNTIL
Si vous souhaitez filtrer votre requête par date ou par période, vous pouvez utiliser les mots-clés SINCE
et UNTIL
et leurs paramètres associés. Ces mots-clés sont uniques, car ils ne filtrent que les périodes. Si vous utilisez SINCE
et que vous ne définissez pas de valeur UNTIL
, la fin de votre intervalle de temps est par défaut today
.
Par exemple, voici une requête pour trouver les ventes nettes au cours des 12 derniers mois, au Canada, se terminant hier :
FROM sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
Opérateurs de compensation
Vous pouvez filtrer par dates spécifiques ou par décalages de date et d’heure. Les opérateurs de compensation de ShopifyQL sont les suivants :
Opérateur de compensation | Description |
---|---|
-{#}s | Nombre de secondes passées depuis la date et l’heure d’exécution de la requête. |
-{#}min | Nombre de minutes passées depuis la date et l’heure d’exécution de la requête. |
-{#}h | Nombre d’heures passées depuis la date et l’heure d’exécution de la requête. |
-{#}d | Nombre de jours passés depuis la date et l’heure d’exécution de la requête. |
-{#}w | Nombre de semaines passées depuis la date et l’heure d’exécution de la requête. |
-{#}m | Nombre de mois passés depuis la date et l’heure d’exécution de la requête. |
-{#}q | Nombre de trimestres passés depuis la date et l’heure d’exécution de la requête. |
-{#}y | Nombre d’années passées depuis la date et l’heure d’exécution de la requête. |
yyyy-MM-dd | Une date spécifique. |
yyyy-MM-ddThh:mm:ss | Une date et une heure spécifiques. |
Fonctions de date
Vous pouvez utiliser les fonctions suivantes combinées avec n’importe quel opérateur de plage de dates (à l’exception des dates spécifiques) dans les énoncés SINCE
et UNTIL
. Les fonctions « startOf...
» tronquent au début de l’unité de temps associée (minute, heure, jour, semaine, mois, trimestre et année) lorsqu’elles sont utilisées avec SINCE
, et les fonctions « endOf...
» tronquent à la fin de l’unité de temps associée lorsqu’elles sont utilisées avec UNTIL
.
Les unités de fonction de date et les unités d’opérateur doivent correspondre pour que le résultat soit valide. Par exemple, startOfMonth(-1m)
est correct, mais startOfMonth(-1d)
ne l’est pas.
Fonction de date | Description |
---|---|
now | La date et l’heure d’exécution de la requête. |
startOfMinute(-{#}min) | Tronque l’opérateur de plage de dates au début de la minute cible. |
endOfMinute(-{#}min) | Tronque l’opérateur de plage de dates à la fin de la minute cible. |
startOfHour(-{#}h) | Tronque l’opérateur de plage de dates au début de l’heure cible. |
endOfHour(-{#}h) | Tronque l’opérateur de plage de dates à la fin de l’heure cible. |
startOfDay(-{#}d) | Tronque l’opérateur de plage de dates au début du jour cible. |
endOfDay(-{#}d) | Tronque l’opérateur de plage de dates à la fin du jour cible. | startOfWeek(-{#}w) | Tronque l’opérateur de plage de dates au début de la semaine cible. |
endOfWeek(-{#}w) | Tronque l’opérateur de plage de dates à la fin de la semaine cible. |
startOfMonth(-{#}m) | Tronque l’opérateur de plage de dates au début du mois cible. |
endOfMonth(-{#}m) | Tronque l’opérateur de plage de dates à la fin du mois cible. |
startOfQuarter(-{#}q) | Tronque l’opérateur de plage de dates au début du trimestre cible. |
endOfQuarter(-{#}q) | Tronque l’opérateur de plage de dates à la fin du trimestre cible. |
startOfYear(-{#}y) | Tronque l’opérateur de plage de dates au début de l’année cible. |
endOfYear(-{#}y) | Tronque l’opérateur de plage de dates à la fin de l’année cible. |
Par exemple, si nous sommes le 8 novembre 2022, vous pouvez utiliser la requête suivante pour obtenir les ventes brutes du 1er janvier 2020 au 31 octobre 2022 :
FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)
DURING
Le mot-clé DURING
simplifie le filtrage des dates pour les plages de dates et remplace l’utilisation de SINCE
et UNTIL
. Vous pouvez utiliser le mot-clé DURING
pour filtrer les résultats des requêtes pour une période connue, telle qu’une année civile ou un mois spécifique, ou pour des plages de dates différentes chaque année, telles que Black Friday Cyber Monday. Par exemple :
FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021
Opérateurs de plages de dates nommés
DURING
accepte l’un des opérateurs de noms de plages de dates suivants :
Opérateur de noms de plages de dates | Description |
---|---|
today | La date d’exécution de la requête. |
yesterday | La période de 24 heures précédant le moment où la requête est exécutée. |
this_week | La semaine civile en cours. |
this_month | Le mois civil en cours. |
this_quarter | Le trimestre civil en cours. |
this_year | L’année civile en cours. |
last_week | La semaine civile précédente. |
last_month | Le mois civil précédent. |
last_quarter | Le trimestre civil précédent. |
last_year | L’année civile précédente. |
bfcmYYYY | La plage Black Friday Cyber Monday pour l’année spécifiée. Par exemple, bfcm2022 renvoie des résultats pour la période du 25 au 28 novembre 2022. |
COMPARE TO
Le mot-clé COMPARE TO
vous permet de comparer les données entre les plages de dates SINCE
et UNTIL
ou DURING
et celles de COMPARE TO
.
Vous pouvez utiliser le mot-clé COMPARE TO
avec les types de paramètres suivants :
- Dates absolues, telles que
2023-01-01
: inclut les indicateurs pour la période spécifiée et les indicateurs de comparaison pour la même période à la date absolue. -
Noms de dates, tels que
last_week
: inclut les indicateurs pour la période spécifiée et les indicateurs de comparaison pour la même période à la date nommée.- L’opérateur utilisé par
COMPARE TO
ne doit pas nécessairement avoir la même durée que celui utilisé parDURING
. Si aucune valeurUNTIL
n’est fournie, la plage de temps est calculée pour être égale à la valeur spécifiée dansDURING
. Par exemple,DURING this_week COMPARE TO last_month
compare les données de cette semaine à une période d’une semaine qui commence au début du mois dernier.
- L’opérateur utilisé par
Dates de décalage, telles que
-3q
: inclut les indicateurs pour la période spécifiée et les indicateurs de comparaison pour la même période à la date relative.Comparaisons de dates multiples, telles que
-1y, -2y
: compare vos données d’une plage de dates spécifique avec plusieurs autres plages de dates. Cela peut être utile lorsque vous souhaitez suivre les changements sur plusieurs périodes.Si vous utilisez une dimension de date dans une requête avec
COMPARE TO
, vous devez utiliserTIMESERIES
plutôt queGROUP BY
.
L’exemple suivant compare les ventes nettes du mois précédent à celles du même mois de l’année précédente :
FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Opérateurs de plages de dates relatives
Les opérateurs relatifs renvoient la même durée que la plage de dates de base, décalée de la période spécifiée. En plus des opérateurs de plages de dates nommés, COMPARE TO
accepte les opérateurs relatifs suivants :
Opérateur de plages de dates relatifs | Description |
---|---|
previous_period | Une période avant la plage de dates de base. |
previous_year | Un an avant la plage de dates de base. |
previous_quarter | Un trimestre avant la plage de dates de base. |
previous_month | Un mois avant la plage de dates de base. |
previous_week | Une semaine avant la plage de dates de base. |
previous_day | Un jour avant la plage de dates de base. |
previous_hour | Une heure avant la plage de dates de base. |
previous_minute | Une minute avant la plage de dates de base. |
previous_second | Une seconde avant la plage de dates de base. |
ORDER BY
Vous pouvez spécifier comment vous souhaitez trier les données renvoyées par votre requête à l’aide du mot-clé ORDER BY
et de ses paramètres : ASC
pour l’ordre croissant et DESC
pour l’ordre décroissant.
Vous pouvez spécifier n’importe quel indicateur ou dimension inclus dans votre requête dans le mot-clé ORDER BY
, y compris plusieurs champs.
Par exemple, cette requête renvoie les ventes nettes de tous les produits et variantes au cours de l’année écoulée. Les résultats sont d’abord triés dans l’ordre alphabétique par titre du produit, puis dans l’ordre alphabétique inverse par type de produit :
FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC
L’ordre dans lequel vous rédigez vos indicateurs ou vos dimensions est important. Si vous spécifiez plusieurs valeurs pour ORDER BY
, le tri est appliqué à chaque indicateur ou dimension dans l’ordre indiqué.
TIMESERIES et l’ordre des colonnes
Selon que la requête inclut ou non TIMESERIES
et ORDER BY
, l’ordre des colonnes peut changer.
TIMESERIES | ORDER BY | Résultat |
---|---|---|
Présent | Non présent | Les résultats sont classés par dimension TIMESERIES . |
Présent | Présent | Les résultats sont classés par dimension temporelle TIMESERIES , puis par dimension ORDER BY . |
Non présent | Présent | Les résultats sont classés par dimension ORDER BY . |
Non présent | Non présent | Les résultats sont classés selon la première colonne SHOW . |
LIMIT
Le mot-clé LIMIT
vous permet de spécifier le nombre maximum de lignes que la requête renvoie. Cette option est utile lorsque vous souhaitez simplement comprendre comment les données de chaque colonne s’affichent, ou pour les rapports plus volumineux dans lesquels les requêtes peuvent prendre plus de temps pour renvoyer des valeurs. Vous pouvez combiner LIMIT
avec ORDER BY
pour créer des listes supérieures et inférieures.
Si vous ne spécifiez pas de valeur LIMIT
, la requête est par défaut de 1 000 lignes.
Vous pouvez également utiliser un paramètre { OFFSET # }
facultatif pour sauter un certain nombre de lignes avant de commencer à renvoyer les données de ligne. La phrase résultante serait formatée de la manière suivante : LIMIT 15 { OFFSET 5 }
.
Cet exemple utilise LIMIT
et ORDER BY
pour créer une liste des 10 produits les plus vendus au cours des 3 derniers mois :
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 et TYPE
Le mot-clé VISUALIZE
vous permet d’écrire une requête ShopifyQL qui affiche les données dans une visualisation graphique. Les visualisations prises en charge comprennent les valeurs suivantes :
-
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
Le mot-clé TYPE
est facultatif et doit être accompagné d’un seul type de visualisation. Si TYPE
n’est pas inclus dans votre requête, ShopifyQL décide automatiquement de la visualisation qui correspond le mieux à votre requête. Si votre requête ne peut pas être visualisée telle qu’elle est écrite, ShopifyQL renvoie des données tabulaires.
VISUALIZE
accepte également un mot-clé LIMIT
facultatif où le paramètre est le nombre limité de points de données à rendre.
Par exemple, vous pouvez visualiser la tendance de vos ventes au cours de l’année écoulée par mois à l’aide d’une courbe de tendance. Cette requête renvoie un tableau de séries chronologiques affichant les ventes brutes par mois au cours de l’année écoulée. Les ventes brutes sont représentées par une seule courbe, avec l’axe des abscisses pour le mois et l’axe des ordonnées pour les ventes brutes :
FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line
AS
Le mot-clé AS
est facultatif. Il vous permet de renommer (ou d’indiquer un alias pour) une colonne ou une expression.
AS
n’accepte qu’un seul paramètre. Si le nom de l’alias contient un espace, vous devez l’entourer de guillemets doubles (").
FROM sales
SHOW total_sales AS "My Total Sales"
Autres opérateurs ShopifyQL
ShopifyQL inclut les opérateurs supplémentaires suivants :
-
Opérateurs mathématiques, tels que
+
ou/
- Jointures implicites
-
Correspondance partielle de chaînes et de tableaux, telle que
STARTS WITH
etCONTAINS
- Commentaires
Opérateurs mathématiques
ShopifyQL autorise les opérations arithmétiques avec les indicateurs de vos données. Les opérateurs mathématiques suivants sont disponibles :
Opérateur mathématique | Description |
---|---|
+ | Addition de deux nombres. |
- | Soustraction de deux nombres. |
* | Multiplication de deux nmbres. |
/ | Division de deux nombres. |
Par exemple, cette requête calcule la valeur de la commande pour chaque région au cours de la dernière année. Lorsque vous utilisez des opérateurs mathématiques avec des métriques, vous pouvez utiliser le mot-clé AS
pour attribuer un nouveau nom à la nouvelle métrique. Veuillez noter qu’il existe des limites à l’utilisation des expressions mathématiques.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Jointures implicites
Une jointure vous permet d'afficher les indicateurs de différents domaines ensemble, côte à côte. Les jointures sont réalisées de manière implicite et intelligente dans ShopifyQL.
ShopifyQL propose les capacités de jointure suivantes :
- ShopifyQL autorise les jointures de champs de dimension lorsqu'il y a une seule table
FROM
dans la requête. - Jointure gauche automatique sur les champs de dimension.
- ShopifyQL autorise les jointures multi-faits (lorsqu'il y a plusieurs tables
FROM
dans les requêtes). - Jointure complète automatique sur les jointures multi-faits, qui prennent en charge n'importe quel nombre de tables ou de schémas et sont regroupées par dimensions.
- Les métriques dans les jointures multi-faits peuvent utiliser math.
ShopifyQL présente les restrictions de jointure suivantes :
- Le champ de jointure doit avoir le même nom dans tous les schémas de jointure.
- Le champ de jointure doit être dans
GROUP BY
. - Le champ de jointure ne peut pas utiliser math.
-
FROM
est nécessaire pour que les jointures multi-faits fonctionnent. - Dans une jointure multi-faits, chaque
GROUP BY
doit être présent dans tous les schémas et est considéré comme un champ sur lequel effectuer la jointure.
Par exemple, cette requête utilise une jointure multi-faits :
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Correspondance partielle de chaînes et de tableaux
Vous pouvez utiliser les opérateurs suivants pour la correspondance partielle de chaînes et de tableaux :
Opérateur | Description |
---|---|
STARTS WITH | Retourne toutes les lignes dont une colonne commence par un préfixe. |
ENDS WITH | Retourne toutes les lignes dont une colonne se termine par un suffixe. |
CONTAINS | Retourne toutes les lignes dont une colonne contient une partie de chaîne ou un élément dans un tableau. |
Les requêtes suivantes constituent des exemples de correspondance partielle de chaînes faisant appel à des opérateurs :
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'opérateur CONTAINS
peut être utilisé pour la correspondance d'éléments dans des tableaux, notamment des entiers, des chaînes et des décimales. Cette correspondance n'est pas sensible à la casse. Les requêtes suivantes constituent des exemples de correspondance de tableaux faisant appel à 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'
Commentaires
Vous pouvez utiliser les commentaires pour expliquer des sections des énoncés ShopifyQL ou empêcher l’exécution d’un relevé ShopifyQL. Tout texte d’un commentaire sera ignoré pendant la durée d’exécution.
Les commentaires d’une seule ligne commencent avec --
et se terminent à la fin de la ligne.
Les commentaires multi-lignes commencent par /*
et se terminent avec */
.
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
*/