Éditeur de requête de source de données

Créez des requêtes de source de données pour les widgets de tableaux et de graphiques afin de sélectionner des données spécifiques dans une base de données. Les requêtes sont construites sous la forme d'un champ de base de données suivi du signe = et d'un operateur , d'un nombre ou d'une chaîne :

database_string=my string
database_number=1234
database_numger=BETWEEN(3, 6)

Les requêtes peuvent être enrichies par du code JavaScript spécifique :

  • Chronométrer un calcul de date avec momentjs

Operateurs

Operateur

Description

BETWEEN()

Plage de la valeur du début à la fin. Les valeurs de début et de fin sont séparées par des virgules

IN()

Liste de nombres ou de chaînes séparés par des virgules à comparer

GT()

Supérieur à la valeur

LT()

Inférieur à la valeur

NOT()

Négation d'une expression

AND()

Liste d'expressions séparées par des virgules. Tout doit être accompli

OR()

Liste d'expressions séparées par des virgules. Au moins un doit être rempli

NULL()

Vérifie si une valeur est NULL

Exemples

Sélectionnez tous les enregistrements avec un salaire supérieur à 40 000 :

salary=GT(40000)

Sélectionnez tous les enregistrements portant des noms autres que James , John et Joe :

name=NOT(IN(James%2CJohn%2CJoe))

Sélectionnez tous les enregistrements avec un customerId non NULL :

customerId=NOT(NULL())

Les virgules dans les arguments doivent être échappées :

. -> %2C

Ceci est nécessaire si operateurs imbriqués sont utilisés comme dans l'exemple ci-dessus.

Exemples avec momentjs

Dans les exemples suivants, params.interval est défini par un widget de sélecteur de date

Sélectionnez uniquement les enregistrements dont la date est comprise entre le paramètre date/heure de début et de fin fourni par un widget de sélecteur de date. Begin , end et format() sont utilisés depuis la bibliothèque momentjs :

date=BETWEEN(${interval(params.interval).begin.format()}, ${interval(params.interval).end.format()})

Sélectionnez les enregistrements d'un an avant :

year=${interval(params.interval).begin.subtract(1, 'years').format('YYYY')}

Interrogez le même mois un an auparavant avec le mois formaté sans zéros non significatifs :

month=${interval(params.interval).begin.subtract(params.sub, 'years').format('M')}

Interrogez le jour de la semaine (0-6) :

weekday=${interval(params.interval).begin.day()}

Requête dépendante des paramètres

Si une requête doit être appliquée uniquement si un paramètre spécifique est défini (par exemple une requête de matrice de filtre), la colonne ainsi que la chaîne de requête peuvent être encapsulées dans des instructions if :

${filterMatrix.device_name ? 'device_name' : 'none'}=${filterMatrix.device_name ? filterMatrix.device_name : ''}

Si le paramètre filterMatrix.device_name est défini, la colonne sera définie sur 'device_name' et la chaîne de requête sur 'filterMatrix.device_name') :

device_name=filterMatrix.device_name

Si le même paramètre n'est pas défini, la requête résultante sera configurée pour la colonne 'none' probablement inexistante :

 none=''