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
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
TIMESERIES
-
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 :
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. |
WITH | Modifie le comportement de certains mots-clés ShopifyQL. |
TIMESERIES | Distingue le regroupement par dimensions temporelles et complète les dates dans une requête. |
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 :
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 :
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 :
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 :
Voici un autre exemple de requête qui utilise une dimension de temps pour afficher les ventes totales par mois :
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
.
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 par 24 heures (1, 2, ..., 24). |
day_of_week | Regroupement par jour de la semaine (M, T, W, ..., S). |
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 :
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 :
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 :
Cette requête pourrait renvoyer un rapport similaire à celui-ci :
Jour | Ventes brutes | Ventes nettes | Ventes totales | Totaux des ventes brutes | Totaux des ventes nettes | Totaux des ventes totales |
---|---|---|---|---|---|---|
2024-01-01 | 1 | 4 | 7 | 6 | 15 | 24 |
2024-01-02 | 2 | 5 | 8 | 6 | 15 | 24 |
2024-01-03 | 3 | 6 | 9 | 6 | 15 | 24 |
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 :
Cette requête pourrait renvoyer un rapport similaire à celui-ci :
Pays | Identifiant du client | Ventes totales | Totaux des ventes totales par pays | Totaux des ventes totales |
---|---|---|---|---|
États-Unis | 1 | 1 | 0 | 1 |
États-Unis | nul | -1 | 1 | 1 |
Canada | 1 | 1 | 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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 (").
Autres fonctions et opérateurs ShopifyQL
ShopifyQL comprend les opérateurs et fonctions supplémentaires suivants :
-
Opérateurs mathématiques, tels que
+
ou/
-
Fonctions, telles que
round()
ettrim()
- 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 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.
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 :
Opérateur de fonction | Description |
---|---|
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:
|
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:
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:
Partial string and array matching
You can use the following operators for partial string and array matching:
Operator | Description |
---|---|
STARTS WITH | Return all rows where a column starts with a prefix. |
ENDS WITH | Return all rows where a column ends with a suffix. |
CONTAINS | Return 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:
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:
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 */
.