Affichage du résumé de la page
Introduction
Consultez les réponses aux questions fréquemment posées sur le Beast Mode.
Comment commencer à utiliser le Beast Mode ?
Pour obtenir plus d'informations sur l'ajout de calculs via le Beast Mode, consultez la rubrique Ajout d'un calcul Beast Mode dans votre graphique. Pour consulter le guide de référence complet des différentes fonctions par catégorie, voir Guide de référence des fonctions Beast Mode.
Pour quelle raison une erreur « Requête non valide » s'affiche-t-elle lorsque j'essaie d'enregistrer mon calcul Beast Mode ?
Voici quelques raisons courantes susceptibles de générer une erreur de Requête non valide suite à l'utilisation incorrecte du Beast Mode :
-
Les noms de colonne doivent être placés entre des apostrophes inversées : `column`. Les guillemets simples, souvent utilisés à la place des apostrophes inversées, génèrent une erreur.
-
La valeur d'une chaîne doit être placée entre guillemets simples : ‘text’.
-
Les instructions Case doivent toujours inclure des arguments CASE, WHEN, THEN et END. Voici un exemple d'instruction Case de base :
CASE WHEN `column1` = ‘good’ THEN ‘Yes’ ELSE ‘No’
END
La portion ELSE est facultative ; en l'absence d'argument ELSE, la valeur est NULL lorsqu'elle ne correspond pas à la première portion.
Pour toute autre question sur l'implémentation appropriée des fonctions dans le Beast Mode, reportez-vous à l'article :Guide de référence des fonctions Beast Mode
Comment créer plusieurs N° de résumé à l'aide du Beast Mode ?
Vous pouvez vous servir du Beast Mode pour afficher les statistiques récapitulatives de multiples cartes. Pour les visiteurs qui consultent la carte, celle-ci leur donne une meilleure perception sur ce qu'elle signifie.
La principale fonction à implémenter dans votre calcul Beast Mode est concat(). Vous pouvez ajouter du texte et combiner différentes mesures dans l'instruction concat().
Par exemple :
CONCAT(calculation, ‘Text’, [etc])
Exemple
Le calcul Beast Mode suivant utilise la fonction CONCAT pour créer un N° de résumé qui présente le nombre d'enregistrements pour lesquels le champ STATUS est « COMPLETE » par rapport au nombre total d'enregistrements :
CONCAT(SUM(CASE WHEN STATUS = 'COMPLETE' THEN `Amount` ELSE 0 END), ' out of ', 'SUM(`Amount`))
En présence de 65 enregistrements complets sur un total de 80 enregistrements, le résultat de la fonction ci-dessus est « 65 sur 80 ».
Pour obtenir plus d'informations sur les N° de résumé, consultez la rubrique Configuration du N° de résumé de votre graphique.
Comment appliquer un filtre à plusieurs colonnes et conditions ?
Disons que vous souhaitiez obtenir le nombre d'opportunités de ventes additionnelles fermées (réalisées ou en attente), mais que le filtre Domo natif ne vous permette pas d'appliquer plusieurs conditions à un filtre de niveau ligne. Pour appliquer un filtre à plusieurs conditions et colonnes non inclusives, vous pouvez créer un calcul Beast Mode logique.
Dans ce cas, le calcul Beast Mode ressemblerait à ceci :
CASE
WHEN `opportunity_type` = ‘upsell’ AND `opportunity_won` = ‘true’ THEN ‘Yes’
WHEN `opportunity_type` = ‘upsell’ AND `opportunity_paused` = ‘true’ THEN ‘Yes’
ELSE ‘No’
END
Comment filtrer certaines dates ?
Disons que vous souhaitiez afficher le nombre d'opportunités fermées réalisées par jour dans un graphique à barres, en laissant de côté les valeurs hors norme, par exemple les opportunités réalisées en 10 jours. Pour ce faire, il vous faudra créer un calcul Beast Mode à utiliser dans le champ Filtrer pour calculer le temps nécessaire avant la fermeture d'une opportunité ouverte, puis les classer en tant que « Oui » ou « Non » selon que le délai de fermeture est inférieur à 10 jours ou non.
Le calcul Beast Mode, que vous pouvez dans ce cas nommer « Opty Closed within 10 Days? » (Opportunité fermées dans les 10 jours) serait alors semblable à celui-ci :
CASE
WHEN DATEDIFF(`Opportunity_Closed_Date`,`Opportunity_Open_Date`) <= 10 THEN ‘Yes’
WHEN DATEDIFF(`Opportunity_Closed_Date`,`Opportunity_Open_Date`) > 10 THEN ‘No’
ELSE ‘Outlier’
END
Comment filtrer les données de sorte que les N° de résumé correspondent à la valeur affichée dans la carte ?
Prenons l'exemple d'une carte de plan des États-Unis ventilant les montants des ventes par État, et un N° de résumé indiquant le montant total des ventes. Dans la légende de la carte des États-Unis, le montant total des ventes est toutefois inférieur au montant du N° de résumé. Le montant des ventes indiqué dans le N° de résumé est supérieur, car il prend en compte tous les montants des ventes sans tenir compte de l'État, alors que la légende de la carte présente les montants pour les États-Unis. Dans un tel scénario, vous devez créer un calcul Beast Mode qui retire les montants non associés aux États-Unis.
Le calcul Beast Mode ressemblerait alors à ceci :
CASE
WHEN `Country` = ‘United States’ THEN ‘Yes’
ELSE ‘No’
END
Pour obtenir plus d'informations sur les N° de résumé, consultez la rubrique Configuration du N° de résumé de votre graphique.
Pourquoi ne puis-je pas placer de calculs Beast Mode dans le champ Filtrer ?
Dans le Card Builder, le filtre repose sur un filtrage de ligne au niveau du DataSet, et ne s'applique donc pas aux données agrégées. Pour contourner le problème, vous pouvez vous servir des outils Magic ETL ou SQL DataFlow pour regrouper et agréger les colonnes en vue d'une utilisation dans la carte et le filtrage. Pour obtenir plus d'informations sur ces outils, consultez la rubrique Préparation.
Puis-je créer un calcul de moyenne mobile à l'aide du Beast Mode ?
Vous ne pouvez pas vous servir du Beast Mode pour créer un calcul de moyenne mobile, mais vous pouvez créer une carte qui présente la moyenne trimestrielle. Vous pouvez également créer un DataFlow pour effectuer ce calcul.
Raisons pour lesquelles le Beast Mode ne peut pas effectuer cette opération :
Selon le mode de regroupement des données dans la carte, le calcul d'une fonction Beast Mode s'applique à un enregistrement ou à un groupe d'enregistrements. Il ne peut donc pas référencer d'autres enregistrements. Par exemple, si vous cherchez à établir la moyenne du mois d'avril, vous ne pouvez pas créer de calcul chargé d'examiner les enregistrements antérieurs au mois d'avril et lui demander de les additionner.
Alternative 1 : Afficher la moyenne trimestrielle sur la carte.
Pour afficher la moyenne trimestrielle sur la carte, procédez comme suit.
Pour afficher la moyenne trimestrielle sur une carte :
-
Définissez votre granularité de date sur « Par trimestre » (en haut de la carte).
Pour obtenir plus d'informations, consultez la rubrique Ajout de filtres dans votre graphique. -
Ajoutez respectivement vos colonnes de date et valeur aux axes des x et des y.
Pour obtenir plus d'informations, consultez la rubrique Application de colonnes de DataSet dans votre graphique. -
Définissez l'option d'agrégation de votre colonne de valeur sur AVG.
Alternative 2 : Créer un calcul de DataFlow
Vous pouvez créer ce calcul dans un DataFlow. La transformation ressemblerait alors à celle-ci :
SELECT
`DateField`
,`ValueField`
,(SELECT
SUM(`ValueField`) / COUNT(*)
FROM
TABLE t2
WHERE
t2.`DateField` > LAST_DAY(DATE_SUB(t1.`DateField`, INTERVAL 3 MONTH))
AND t2.`DateField` < LAST_DAY(t1.`DateField`) ) AS `Rolling_Average`
FROM
TABLE t1
Cette transformation suppose que la date incluse dans le champ de date représente le mois, par exemple « 01-01-2015 » pour janvier.
Voici ce qu'il se passe dans le calcul ci-dessus :
-
Utilisation d'une sous-requête pour récupérer la somme des valeurs des 3 derniers mois,
-
Division de cette somme par le nombre d'enregistrements présents dans la rangée, et
-
Définition du nom du champ sur « Rolling_Average ».
Vous devez également renommer vos champs en « DateField » et « ValueField » (et au besoin en ajouter d'autres dans le DataSet résultant) et remplacer « TABLE » par la table de DataSet utilisée comme entrée.
Pour obtenir plus d'informations sur les DataFlows, consultez la rubrique Préparation.
Comment créer des sommes conditionnelles à l'aide du Beast Mode ?
Lorsque vous utilisez l'instruction CASE pour créer un calcul, il est parfois préférable d'agréger les résultats de cette instruction CASE. Malheureusement, nombre d'utilisateurs font souvent l'erreur d'utiliser la fonction SUM dans l'instruction CASE :
CASE
WHEN `Column_1` = 'Value_1’
THEN SUM(`Column_1`)
END
Pour que la fonction s'exécute correctement, il est en fait nécessaire « d'envelopper » l'instruction complète dans la fonction SUM :
SUM(CASE
WHEN `Column_1` = 'Value_1’
THEN SUM(`Column_1`)
END)
Comment agréger un calcul Beast Mode pour qu'il soit ensuite disponible dans mon N° de résumé ?
Les utilisateurs se servent souvent d'un calcul Beast Mode contenant une instruction CASE en tant que N° de résumé. Pour que la valeur soit utilisée en tant que N° de résumé, son type de données doit être numérique. Ainsi, lorsque le calcul contient uniquement une instruction CASE, Domo le considère comme un type de données chaîne et non pas comme un type de données numérique.
La solution qui permet d'insérer un calcul d'instruction CASE courant dans un champ de type numérique est la même que pour la somme conditionnelle. « Enveloppez » toute l'instruction dans une fonction d'agrégation, par exemple SUM ou COUNT, telle que :
SUM(CASE
WHEN `Column_1` = 'Value_1’
THEN SUM(`Column_1`)
END)
Pour obtenir plus d'informations sur les N° de résumé, consultez la rubrique Configuration du N° de résumé de votre graphique.
Comment agréger une colonne existante à l'aide du Beast Mode ?
Les utilisateurs pensent souvent qu'un calcul Beast Mode est le seul moyen d'agréger une colonne de données. Il est en fait préférable de faire appel aux outils du Card Builder de Domo pour créer des agrégations de valeur utilisées sur les axes des x, des y ou de série de la carte en question. Pour obtenir plus d'informations, consultez la rubrique Agrégation de vos données.
Comment classer les noms de mois dans l'ordre chronologique sur l'axe des x ?
Disons que vous vouliez afficher les noms de mois complets sur l'axe des x d'une carte à la place de la valeur « Année - Abréviation du mois » qu'utilise Domo par défaut (par exemple, 2015 – Jan), mais qu'une fois le nom du champ appliqué à la carte, les noms s'affichent dans le désordre, sans être classés. Les noms de mois sont classés dans l'ordre alphabétique et non pas chronologique, car le type de données de la colonne des noms de mois est « chaîne ». Pour résoudre le problème, vous pouvez assigner une valeur numérique à chaque nom de mois, puis l'utiliser pour l'opération de tri.
Le calcul Beast Mode ressemblerait alors à ceci :
CASE
WHEN `MonthName` = ‘January’ THEN 1
WHEN `MonthName` = ‘February’ THEN 2
WHEN `MonthName` = ‘March’ THEN 3
WHEN `MonthName` = ‘April’ THEN 4
WHEN `MonthName` = ‘May’ THEN 5
WHEN `MonthName` = ‘June’ THEN 6
WHEN `MonthName` = ‘July’ THEN 7
WHEN `MonthName` = ‘August’ THEN 8
WHEN `MonthName` = ‘September’ THEN 9
WHEN `MonthName` = ‘October’ THEN 10
WHEN `MonthName` = ‘November’ THEN 11
WHEN `MonthName` = ‘December’ THEN 12
END
Pour obtenir plus d'informations sur le classement des données dans un graphique, consultez la rubrique Tri des données dans votre graphique.
Comment mettre en forme les dates sur l'axe des x en vue de comparaisons d'une année sur l'autre ?
Disons que vous vouliez effectuer une comparaison d'une année à l'autre dans une carte sans savoir par quoi commencer. Si l'axe des x comprend plusieurs années, la comparaison n'est pas possible. De même, il est possible que vous obteniez l'erreur « Aucune donnée » lorsque vous appliquez la comparaison à une série.
Pour effectuer une comparaison d'une année à l'autre, vous devez créer les trois calculs Beast Mode suivants :
- Un calcul nommé « Mois » qui met les dates en forme sur l'axe des x de sorte que seul le mois s'affiche et non pas l'année :
DATE_FORMAT(`DateColumn`,'%M')
- Un calcul nommé « D'une année à l'autre » qui crée une série dans laquelle les valeurs sont ventilées par année :
YEAR(`DateColumn`)
- Un calcul nommé « Classement des mois » qui classe les mois sur l'axe des x :
MONTH(`DateColumn`)
Comment remplacer le type de données « chaîne » d'une colonne de date par le type de données « date » ?
Disons que vous vouliez utiliser des dates dans votre carte, mais que la colonne de date désirée soit de type « chaîne », les valeurs de la colonne n'étant alors pas classées dans la carte. Vous pouvez alors utiliser le calcul Beast Mode suivant pour modifier le type de données de la colonne qui contient les dates et remplacer la valeur de chaîne par une valeur de date :
STR_TO_DATE(`DateColumn`,’%d/%m/%Y’)
Pour obtenir plus d'informations sur les types de données, consultez la rubrique Présentation des données dans les graphiques.
Comment mettre en forme les valeurs de date sur l'axe des x ?
Disons que vous souhaitiez afficher les valeurs de date dans un format spécifique au lieu d'utiliser le format standard de la carte. Par exemple, si votre carte présente les données du mois en cours par jour, les valeurs de date de l'axe des x affichent l'année, le mois et le jour (par exemple, 2016-01-15) alors qu'il peut être préférable de n'afficher que les valeurs du jour et du mois (01-15).
Pour modifier l'affichage des valeurs de date et présenter uniquement le jour et le mois, vous pouvez reformater les valeurs de date via la fonction DATE_FORMAT() suivante :
DATE_FORMAT(`DateColumn`,’%d-%m’)
Vous pouvez également mettre en forme les dates dans les Propriétés du graphique. Pour obtenir plus d'informations, consultez la rubrique Modification du format de date dans votre graphique.
Comment modifier la colonne de date pour représenter un autre fuseau horaire ?
Pour définir le fuseau horaire de votre société dans les Paramètres d'administrateur, suivez les instructions de la section : Définition du fuseau horaire de votre société.
Toutefois, il est parfois nécessaire d'utiliser le Beast Mode lorsque les fuseaux horaires ne correspondent pas dans les DataSets.
Disons par exemple que les dates incluses dans la colonne d'une carte correspondent à la côte Est alors que le fuseau horaire de votre société est l'heure normale du Pacifique (HNP), et que vous vouliez afficher ces données plutôt que celles de la côte EST. Vous pouvez alors faire basculer les valeurs de date vers un autre fuseau horaire en ajoutant ou en soustrayant un certain nombre d'heures selon le fuseau horaire cible. Les fonctions qui effectuent ces opérations sont DATE_ADD() et DATE_SUB(). Par exemple, pour remplacer les valeurs de dates de la côte EST par les valeurs HNP, il est nécessaire de soustraire 3 heures, ce que permet de faire un calcul Beast Mode tel que celui-ci :
DATE_SUB(`DateColumn`, interval 3 HOUR)
Comment utiliser un calcul Beast Mode pour calculer l'évolution en pourcentage (%) entre l'année en cours et l'année précédente ?
Disons que votre carte présente les 24 derniers mois, regroupés par mois. L'année est définie en tant que série. Votre N° de résumé doit indiquer la variation en pourcentage entre les mois de janvier et en cours de l'année précédente et cette même période pour l'année en cours. Pour ce faire, vous pouvez utiliser le calcul Beast Mode suivant :
(SUM(CASE WHEN YEAR('Date') = YEAR('NOW') THEN 'Total Sales' ELSE 0 END)-SUM(CASE WHEN YEAR('Date')= YEAR(DATE_SUB('NOW', INTERVAL 1 YEAR))AND month('Date') <= month('NOW') THEN 'Total Sales' ELSE 0 END))/
SUM(CASE WHEN YEAR('Date')= YEAR(DATE_SUB('NOW', INTERVAL 1 YEAR)) AND month('Date') <= month('NOW') THEN 'Total Sales' ELSE 0 END)
Ce calcul se révèle utile pour afficher un N° de résumé sur une carte ou pour indiquer une valeur sur une carte de jauge à valeur unique. Pour présenter la variation en pourcentage au cours du temps, suivez les instructions données pour les calculs d'une période à l'autre dans la FAQ suivante, puis créez un calcul Beast Mode pour déterminer la variation en pourcentage entre les champs créés pour la valeur de l'année précédente et celle de l'année en cours à l'aide de la formule suivante :
(Valeur année en cours – Valeur année précédente) / Valeur année précédente
Comment créer un graphique d'une période à l'autre à l'aide du Beast Mode ?
Pour créer un graphique comparant deux périodes dans Domo, vous pouvez utiliser un calcul Beast Mode pour l'axe des x (date) et un autre calcul Beast Mode pour la série. Vous pouvez également vous servir d'un calcul Beast Mode pour limiter les plages de dates affichées sur la carte.
Pour commencer, créez vos propres calculs Beast Mode entre deux périodes à l'aide des exemples ci-dessous. Les exemples utilisés dans la démonstration présentent la création d'un graphique comparant deux années.
Étape 1 : Création du calcul de l'axe des x-axis (date) (OBLIGATOIRE)
Dans cette étape, vous projetez les dates des périodes précédentes (par exemple, les années) sur la période en cours. Les données des différentes périodes s'affichent ainsi sur la même rangée de l'axe des x. Ce calcul Beast Mode remplace l'année indiquée dans une valeur de date par l'année en cours.
STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field`, '%m-%d') ), '%Y-%m-%d’)
Étape 2 : Création du calcul de la série (année) (OBLIGATOIRE)
Créez ensuite une série représentant les données de chaque période. Le calcul Beast Mode suivant vous permet de créer une série représentant les données de chaque année.
YEAR(`Date_Field`)
Étape 3 : Création de calculs pour le filtrage (FACULTATIF)
Pour afficher une certaine période en plus de l'année complète (d'un trimestre à l'autre, d'un mois à l'autre, etc.), vous pouvez créer un filtre qui récupère la plage de dates ou la période qui vous intéresse.
Deux méthodes distinctes vous permettent de créer des calculs Beast Mode pour le filtrage. La première méthode vous permet de créer un filtre pour une plage de dates spécifique. La seconde vous permet de créer un filtre pour un nombre donné de jours précédents, mois précédents, etc.
Plage de dates spécifique
Pour créer un filtre pour une plage de dates spécifique, servez-vous du calcul Beast Mode suivant.
CASE
WHEN CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field `, '%m-%d') ) >= '2015-07-01' AND CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field `, '%m-%d') ) <= '2015-11-30' THEN 'TRUE'
ELSE 'FALSE'
END
‘X’ derniers jours, mois, etc.
Pour créer un filtre pour un nombre donné de mois ou jours précédents, servez-vous du calcul Beast Mode suivant. Remplacez « 3 MONTH » par l'intervalle nécessaire, par exemple « 1 DAY », « 4 WEEK », etc. Servez-vous simplement du nombre et de l'unité au singulier.
CASE
WHEN STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field `, '%m-%d') ), '%Y-%m-%d') >= DATE_SUB(CURRENT_DATE(), INTERVAL 3 MONTH) THEN 'TRUE'
ELSE 'FALSE'
END
Vous pouvez utiliser des variations des filtres précédents pour limiter la plage en fonction de vos besoins.
Comment diviser par une valeur NULL ou zéro ?
Pour diviser par une valeur NULL ou par zéro, vous pouvez vous servir de l'instruction Case suivante :
CASE
WHEN iFNULL(`value2`,0) = 0 THEN 0
ELSE `value1` / `value2`
END
Comment créer une somme conditionnelle ?
Lorsque vous utilisez l'instruction CASE pour créer un calcul, il est parfois préférable d'agréger les résultats de cette instruction CASE. Malheureusement, nombre d'utilisateurs font souvent l'erreur d'utiliser la fonction SUM dans l'instruction CASE, par exemple :
CASE WHEN `Column_1` = 'Value_1’ THEN SUM(`Column_1`) END
Pour que la fonction s'exécute correctement, il est en fait nécessaire « d'envelopper » l'instruction complète dans la fonction SUM :
SUM(CASE WHEN `Column_1` = 'Value_1’ THEN SUM(`Column_1`) END)
Comment agréger un calcul Beast Mode pour qu'il soit ensuite disponible dans mon N° de résumé ?
Les utilisateurs se servent souvent d'un calcul Beast Mode contenant une instruction CASE en tant que N° de résumé. Pour que la valeur soit utilisée en tant que N° de résumé, son type de données doit être numérique. Ainsi, lorsque le calcul contient uniquement une instruction CASE, Domo le considère comme un type de données chaîne et non pas comme un type de données numérique. La solution qui permet d'insérer un calcul d'instruction CASE courant dans un champ de type numérique est la même que pour la somme conditionnelle. « Enveloppez » toute l'instruction dans une fonction d'agrégation, par exemple SUM ou COUNT, telle que :
SUM(CASE WHEN `Column_1` = 'Value_1’ THEN SUM(`Column_1`) END)
Que dois-je faire lorsque mon calcul Beast Mode « disparaît » après l'enregistrement ?
En général, ce problème survient lorsque plusieurs utilisateurs modifient la même carte simultanément. Lorsque le Beast Mode est partagé sur le DataSet, d'autres utilisateurs peuvent également modifier d'autres cartes sur le DataSet en remplaçant les modifications que d'autres apportent aux Beast Modes sur ce DataSet.
Pour résoudre le problème, il est généralement plus simple de consulter les autres utilisateurs pour être certains de ne pas vous gêner mutuellement, ou d'effectuer vos propres modifications lorsqu'il est peu probable que d'autres utilisateurs les modifient également.
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.