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. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    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.
WITHModifie le comportement de certains mots-clés ShopifyQL.
TIMESERIESDistingue le regroupement par dimensions temporelles et complète les dates dans une requête.
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'

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 discounts > 0

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 par 24 heures (1, 2, ..., 24).
day_of_weekRegroupement par jour de la semaine (M, T, W, ..., S).
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 totalesTotaux des ventes brutesTotaux des ventes nettesTotaux des ventes totales
2024-01-0114761524
2024-01-0225861524
2024-01-0336961524

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 totalesTotaux des ventes totales par paysTotaux des ventes totales
États-Unis1101
États-Unisnul-111
Canada1111

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 orders
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month ALL
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 un mot-clé facultatif qui permet de renommer (ou de fournir un alias pour) une colonne ou la valeur de retour d’une fonction agrégée.

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 fonctions et opérateurs ShopifyQL

ShopifyQL comprend les opérateurs et fonctions 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 des commandes pour chaque région au cours de l’année écoulée. Lorsque vous utilisez des opérateurs mathématiques avec des indicateurs, vous pouvez utiliser le mot-clé AS pour attribuer un nouveau nom au nouvel indicateur.

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

Fonctions

Les fonctions de ShopifyQL vous permettent d’agréger des colonnes ou de les combiner pour créer une nouvelle valeur, à l’instar des tableaux croisés dynamiques de Microsoft Excel. Les opérateurs de fonction suivants sont disponibles dans la version actuelle de ShopifyQL :

Liste des fonctions ShopifyQL prises en charge, telles que l’ajustement et l’arrondi.
Opérateur de fonctionDescription
TRIM(column_name)Supprime les espaces blancs de début et de fin d’une chaîne.
ROUND(column_name, decimal_places)Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
  • If decimal_places > 0, then the function rounds the value to the right of the decimal point.
  • If decimal_places < 0, then the function rounds the value to the left of the decimal point.
  • If decimal_places = 0, then the function rounds the value to integer. In this case, the argument can be omitted entirely.

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

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

Implicit joins

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

ShopifyQL has the following join capabilities:

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

Shopify QL has the following join restrictions:

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

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

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

Partial string and array matching

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

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

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

FROM sales
SHOW product_title
WHERE product_title STARTS WITH 'Summer'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title ENDS WITH 'kit'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title CONTAINS 'Beef'
GROUP BY product_title

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

FROM sales
SHOW orders
WHERE products_bought_together_ids CONTAINS 101
FROM customers
SHOW total_number_of_orders
WHERE customer_cities CONTAINS 'seattle'
FROM sales
SHOW orders
WHERE variants_bought_together_variant_prices CONTAINS 10.2

Comments

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

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

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

FROM sales
SHOW average_order_value, gross_sales
-- the line below has been commented out and won't run
-- GROUP BY billing_region
WHERE billing_country = 'United States'
/*
this line and the two lines below it have been commented out and won't run
SINCE 2021-01-01
UNTIL 2021-12-31
*/
Vous ne trouvez pas les réponses que vous recherchez ? Nous sommes là pour vous aider.