Traduire des requêtes SQL dans Commerce Intelligence
Vous êtes-vous déjà demandé comment les requêtes SQL sont traduites en colonnes calculées, mesures et rapports que vous utilisez dans Commerce Intelligence ? Si vous utilisez beaucoup de SQL, comprendre comment le langage SQL est traduit dans Commerce Intelligence vous permet de travailler plus intelligemment dans Data Warehouse Manager et de tirer le meilleur parti de la plateforme Commerce Intelligence.
À la fin de cette rubrique, vous trouverez une matrice de traduction pour les clauses de requête SQL et les éléments de Commerce Intelligence.
Commencez par examiner une requête générale :
SELECTa,group by du rapportSUM(b)Aggregate function (colonne)FROM cSource tableWHEREd IS NOT NULLFilterAND time < XAND time >= Ytime frame du rapportGROUP BY agroup by du rapportCet exemple couvre la plupart des cas de traduction, mais il existe quelques exceptions. Plongez-vous, en commençant par la manière dont la fonction aggregate est traduite.
Fonctions d’agrégat
Les fonctions d’agrégat (par exemple, count, sum, average, max et min) dans les requêtes prennent la forme d’agrégations de mesures ou agrégations de colonnes dans les Commerce Intelligence. Le facteur de différenciation est de savoir si une jointure est nécessaire pour effectuer l'agrégation.
Examinez un exemple pour chacun des éléments ci-dessus.
Agrégations de mesures aggregate
Une mesure est requise lors de l’agrégation des within a single table. Par exemple, la fonction d’agrégat SUM(b) de la requête ci-dessus serait probablement représentée par une mesure qui additionne les B de colonne.
Examinez un exemple spécifique de la manière dont une mesure Total Revenue peut être définie dans Commerce Intelligence. Examinez la requête ci-dessous que vous tentez de traduire :
SELECTSUM(order_total) as "Total Revenue"Metric operation (colonne)FROM ordersMetric source tableWHEREemail NOT LIKE '%@magento.com'filter de mesureAND created_at < XAND created_at >= Ytimestamp des mesures (et time range de création de rapports)Accédez au créateur de mesures en cliquant sur Manage Data > Mesures > Créer une mesure. Vous devez d’abord sélectionner la table de source appropriée, qui est dans ce cas la table de orders. Ensuite, la mesure est configurée comme illustré ci-dessous :
Agrégations de colonnes
Une colonne calculée est requise lors de l’agrégation d’une colonne jointe à partir d’un autre tableau. Ainsi, par exemple, vous pouvez avoir une colonne créée dans votre tableau de customer appelée Customer LTV, qui additionne la valeur totale de toutes les commandes associées à ce client dans le tableau de orders.
La requête pour cette agrégation peut ressembler à ce qui suit :
Selectc.customer_idSUM(o.order_total) as "Customer LTV"FROM customers cJOIN orders oON c.customer_id = o.customer_idWHERE o.status = 'success'La configuration de cette fonctionnalité dans Commerce Intelligence nécessite l’utilisation de votre gestionnaire Data Warehouse, où vous créez un chemin d’accès entre votre orders et customers tableau, puis créez une colonne appelée Customer LTV dans le tableau de votre client.
Examinez comment établir un nouveau chemin entre le customers et le orders. L’objectif final est de créer une colonne agrégée dans le tableau customers. Par conséquent, accédez d’abord au tableau customers dans votre Data Warehouse, puis cliquez sur Create a Column > Sélectionner une définition > SOMME.
Vous devez ensuite sélectionner la table source. S’il existe un chemin d’accès vers votre tableau orders, sélectionnez-le simplement dans la liste déroulante. Cependant, si vous créez un chemin, cliquez sur Create new path et l’écran ci-dessous s’affiche :
Ici, vous devez examiner attentivement la relation entre les deux tables que vous tentez de joindre. Dans ce cas, des commandes potentiellement Many sont associées à One client. Par conséquent, la table orders est répertoriée du côté Many, tandis que la table customers est sélectionnée du côté One.
path équivaut à une Join dans SQL.Une fois le chemin enregistré, vous pouvez créer la colonne Customer LTV. Voir ci-dessous :
Maintenant que vous avez créé la nouvelle colonne Customer LTV dans votre tableau customers, vous êtes prêt à créer une agrégation des mesures à l’aide de cette colonne (par exemple, pour trouver le LTV moyen par client). Vous pouvez également group by ou filter par la colonne calculée dans un rapport à l’aide des mesures existantes créées sur le tableau customers.
filter ou group by.Voir création de colonnes calculées avec votre gestionnaire Data Warehouse.
Group By des clauses
Les fonctions Group By dans les requêtes sont souvent représentées dans Commerce Intelligence sous la forme d’une colonne utilisée pour segmenter ou filtrer un rapport visuel. À titre d’exemple, revenons sur la requête Total Revenue que vous avez explorée précédemment, mais cette fois, segmentez les recettes par le coupon\_code afin de mieux comprendre quels coupons génèrent le plus de recettes.
Commencez par la requête ci-dessous :
SELECT coupon_code,group by du rapportSUM(order_total) as "Total Revenue"Metric operation(colonne)FROM ordersMetric source tableWHEREemail NOT LIKE '%@magento.com'filter de mesureAND created_at < '2016-12-01'AND created_at >= '2016-09-01'timestamp des mesures (et time range de création de rapports)GROUP BY coupon_codegroup by du rapportEn utilisant la même mesure de Total Revenue que celle que vous avez créée précédemment, vous êtes maintenant prêt à créer votre rapport de chiffre d’affaires segmenté par code de coupon. Examinez le gif ci-dessous, qui montre comment configurer ce rapport visuel en examinant les données de septembre à novembre :
Formules
Parfois, une requête peut impliquer plusieurs agrégations afin de calculer la relation entre des colonnes distinctes. Par exemple, vous pouvez calculer la valeur de commande moyenne dans une requête de l’une des deux façons suivantes :
AVG('order\_total')OUSUM('order\_total')/COUNT('order\_id')
La première méthode implique la création d’une mesure qui effectue une moyenne sur la colonne order\_total. Cependant, la dernière méthode peut être créée directement dans le Report Builder en supposant que vous ayez déjà configuré les mesures pour calculer le Total Revenue et le Number of orders.
Prenez du recul et examinez la requête globale pour Average order value :
SELECTSUM(order_total) as "Total Revenue"operation de mesure (colonne)COUNT(order_id) as "Number of orders"operation de mesure (colonne)SUM(order_total)/COUNT(order_id) as "Average order value"operation de mesure (colonne) / Opération de mesure (colonne)FROM orderssource des mesuresWHEREemail NOT LIKE '%@magento.com'filter de mesureAND created_at < '2016-12-01'AND created_at >= '2016-09-01'Supposons maintenant que vous ayez déjà configuré des mesures pour calculer les Total Revenue et les Number of orders. Puisque ces mesures existent, vous pouvez simplement ouvrir le Report Builder et créer un calcul à la demande à l’aide de la fonction Formula :
Conclusion
Si vous utilisez beaucoup de SQL, réfléchir à la manière dont les requêtes sont traduites en Commerce Intelligence vous permet de créer des colonnes calculées, des mesures et des rapports.
Pour une référence rapide, consultez le tableau ci-dessous. Elle montre l'élément Commerce Intelligence équivalent d'une clause SQL et la façon dont il peut être mappé à plusieurs éléments, selon la façon dont il est utilisé dans la requête.
Éléments de Commerce Intelligence
SQL ClauseMetricFilterReport group byReport time framePathCalculated column inputsSource tableSELECTFROMWHEREWHERE (avec éléments temporels)JOIN...ONGROUP BY