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.

Glossaire de termes

Définitions des termes ShopifyQL, tels que dimension, mot-clé et opérateur.
TermeDéfinition
DimensionUn 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.
IndicateurUne 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ètreSyntaxe ShopifyQL qui identifie les éléments ou les détails de la base de données à inclure dans votre requête.
OpérateurUn 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 et SHOW, 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 :
    1. FROM
    2. SHOW
    3. WHERE
    4. GROUP BY
    5. TIMESERIES
    6. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    7. HAVING
    8. SINCE et UNTIL ou DURING
    9. COMPARE TO et facultatif UNTIL
    10. ORDER BY
    11. LIMIT
    12. VISUALIZE et TYPE

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.

Liste des mots-clés ShopifyQL et de leurs descriptions.
Mot-cléDescription
FROMIndique la table de données à partir de laquelle sélectionner les données.
SHOWSélectionne les colonnes que vous souhaitez extraire de la table de données.
WHEREDéfinit la condition ou les conditions que les lignes doivent satisfaire pour être sélectionnées.
GROUP BYRegroupe les données extraites par une dimension ou des dimensions temporelles.
TIMESERIESDistingue le regroupement par dimensions temporelles et complète les dates dans une requête.
WITHModifie le comportement de certains mots-clés ShopifyQL.
HAVINGFiltre les résultats d’une requête après qu’ils ont été regroupés.
SINCEAffiche les données depuis un moment spécifié dans le passé. Souvent associé à UNTIL.
UNTILAffiche les données jusqu’à un moment spécifié dans le passé. Souvent associé à SINCE ou COMPARE TO.
DURINGAffiche les données pour une période spécifiée dans le passé.
COMPARE TOAffiche les données pour les comparer avec un moment spécifié dans le passé.
ORDER BYIndique par quelle colonne ordonner les données.
LIMITLimite le nombre de lignes de données affichées.
VISUALIZEAffiche vos données dans une visualisation en ligne ou à barres. Vous pouvez spécifier la visualisation que vous souhaitez avec TYPE.
ASUn 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 :

Liste des opérateurs de comparaison ShopifyQL, tels que supérieur ou égal à.
Opérateur de comparaisonDescription
= :
!=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 :

Liste des opérateurs logiques ShopifyQL, tels que AND, OR et NOT.
Opérateur logiqueDescription
ANDFiltre pour inclure toutes les lignes où les conditions séparées par AND sont remplies.
ORFiltre pour inclure toutes les lignes où l’une des conditions séparées par OR est remplie.
NOTFiltre 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 :

Liste des dimensions temporelles ShopifyQL, telles que la seconde, la minute ou le jour de la semaine.
OpérateurDescription
secondRegroupement par seconde de l’heure.
minuteRegroupement par minute de l’heure.
hourRegroupement par heure de jour civil.
dayRegroupement par jour civil.
weekRegroupement par semaine civile.
monthRegroupement par mois civil.
quarterRegroupement par trimestre civil.
yearRegroupement par année civile.
hour_of_dayRegroupement à partir de zéro par 24 heures (0, 1, ..., 23).
day_of_weekRegroupement à partir de zéro par jour de la semaine (0, 1, ... , 6).
week_of_yearRegroupement par semaine de l’année (1, 2, ..., 52).
month_of_yearRegroupement 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.

Exemples de TIMESERIES et de comment l’ordre des colonnes s’affiche avec GROUP BY ou SHOW dans ShopifyQL.
TIMESERIESSHOWGROUP BYRésultat
DonnéNon présentNon présentLe TIMESERIES est la première dimension.
DonnéNon présentPrésentLa position de la dimension temporelle est définie par sa position dans GROUP BY.
DonnéPrésentPrésentLa position de la dimension temporelle est définie par sa position dans SHOW.
Non donnéNon présentPrésentLa 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ésentPrésentLa 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ésentNon présentDé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 dans COMPARE 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 :

Exemple de tableau des ventes ShopifyQL utilisant WITH TOTALS.
JourVentes brutesVentes nettesVentes totales
Résumé61524
2024-01-01147
2024-01-02258
2024-01-03369

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 :

Exemple de tableau des ventes ShopifyQL utilisant GROUP_TOTALS.
PaysIdentifiant du clientVentes totales
Synthèse (États-Unis + Canada)-1
Totaux du groupe États-Unis-0
États-Unis11
États-Unisnul-1
Totaux du groupe Canada-1
Canada11

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 :

Liste des opérateurs de compensation ShopifyQL, tels que les compensations par seconde, minute ou date spécifique.
Opérateur de compensationDescription
-{#}sNombre de secondes passées depuis la date et l’heure d’exécution de la requête.
-{#}minNombre de minutes passées depuis la date et l’heure d’exécution de la requête.
-{#}hNombre d’heures passées depuis la date et l’heure d’exécution de la requête.
-{#}dNombre de jours passés depuis la date et l’heure d’exécution de la requête.
-{#}wNombre de semaines passées depuis la date et l’heure d’exécution de la requête.
-{#}mNombre de mois passés depuis la date et l’heure d’exécution de la requête.
-{#}qNombre de trimestres passés depuis la date et l’heure d’exécution de la requête.
-{#}yNombre d’années passées depuis la date et l’heure d’exécution de la requête.
yyyy-MM-ddUne date spécifique.
yyyy-MM-ddThh:mm:ssUne 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.

Liste des fonctions de date ShopifyQL, telles que la fin de la journée ou le début du trimestre.
Fonction de dateDescription
nowLa 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 :

Liste des opérateurs de plages de dates nommés de ShopifyQL, tels qu’aujourd’hui, hier ou cette semaine.
Opérateur de noms de plages de datesDescription
todayLa date d’exécution de la requête.
yesterdayLa période de 24 heures précédant le moment où la requête est exécutée.
this_weekLa semaine civile en cours.
this_monthLe mois civil en cours.
this_quarterLe trimestre civil en cours.
this_yearL’année civile en cours.
last_weekLa semaine civile précédente.
last_monthLe mois civil précédent.
last_quarterLe trimestre civil précédent.
last_yearL’année civile précédente.
bfcmYYYYLa 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é par DURING. Si aucune valeur UNTIL n’est fournie, la plage de temps est calculée pour être égale à la valeur spécifiée dans DURING. 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.
  • 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 utiliser TIMESERIES plutôt que GROUP 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 :

Liste des opérateurs de plages de dates relatifs de ShopifyQL, tels que la période précédente ou l’année précédente.
Opérateur de plages de dates relatifsDescription
previous_periodUne période avant la plage de dates de base.
previous_yearUn an avant la plage de dates de base.
previous_quarterUn trimestre avant la plage de dates de base.
previous_monthUn mois avant la plage de dates de base.
previous_weekUne semaine avant la plage de dates de base.
previous_dayUn jour avant la plage de dates de base.
previous_hourUne heure avant la plage de dates de base.
previous_minuteUne minute avant la plage de dates de base.
previous_secondUne 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.

Exemple de TIMESERIES et de l’ordre des colonnes lorsque ORDER BY est présent en utilisant ShopifyQL.
TIMESERIESORDER BYRésultat
PrésentNon présentLes résultats sont classés par dimension TIMESERIES.
PrésentPrésentLes résultats sont classés par dimension temporelle TIMESERIES, puis par dimension ORDER BY.
Non présentPrésentLes résultats sont classés par dimension ORDER BY.
Non présentNon présentLes 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

ShopifyQL autorise les opérations arithmétiques avec les indicateurs de vos données. Les opérateurs mathématiques suivants sont disponibles :

Liste des opérateurs mathématiques de ShopifyQL, y compris plus et moins.
Opérateur mathématiqueDescription
+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 :

Liste des opérateurs de correspondance partielle de chaînes et de tableaux dans ShopifyQL.
OpérateurDescription
STARTS WITHRetourne toutes les lignes dont une colonne commence par un préfixe.
ENDS WITHRetourne toutes les lignes dont une colonne se termine par un suffixe.
CONTAINSRetourne 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
*/
Vous ne trouvez pas les réponses que vous recherchez ? Nous sommes là pour vous aider.