Editor di query della sorgente dati

Crea query di origine dati per widget di tabelle e grafici per selezionare dati specifici da un database. Le query sono costruite sotto forma di un campo del database seguito dal segno = e da un operatore, un numero o una stringa:

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

Le query possono essere arricchite da codice JavaScript specifico:

Operatori

Operatore

Descrizione

BETWEEN()

Intervallo dal valore iniziale al valore finale. I valori iniziali e finali sono separati da virgola

IN()

Elenco separato da virgole di numeri o stringhe da confrontare

GT()

Valore maggiore di

LT()

Valore inferiore

NOT()

Negazione di un'espressione

AND()

Elenco di espressioni separate da virgola. Tutte devono essere soddisfatte

OR()

Elenco di espressioni separate da virgola. Almeno una deve essere soddisfatta

NULL()

Verifica se un valore è NULL

Esempi

Seleziona tutti i record con uno stipendio superiore a 40000:

salary=GT(40000)

Seleziona tutti i record con nomi diversi da James, John e Joe:

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

Seleziona tutti i record con un customerId non NULL:

customerId=NOT(NULL())

Le virgole negli argomenti devono essere precedute dal carattere di escape:

. -> %2C

Ciò è necessario se si utilizzano operatori nidificati come nell'esempio sopra riportato.

Esempi con momentjs

Negli esempi seguenti, params.interval è impostato da un widget di selezione della data

Seleziona solo i record con una data compresa tra il parametro di data/ora di inizio e fine fornito da un widget di selezione della data. Begin, end e format() sono utilizzati dalla libreria momentjs:

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

Seleziona i record di un anno prima:

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

Eseguire una query sullo stesso mese di un anno prima con il mese formattato senza zeri iniziali:

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

Esegui una query sul giorno della settimana (0-6):

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

Query dipendente dai parametri

Se una query deve essere applicata solo se è impostato un parametro specifico (ad esempio una query con matrice di filtro), sia la colonna che la stringa di query possono essere racchiuse in istruzioni if:

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

Se è definito il parametro filterMatrix.device_name, la colonna sarà impostata su "device_name" e la stringa di query su "filterMatrix.device_name"):

device_name=filterMatrix.device_name

Se lo stesso parametro non è definito, la query risultante sarà configurata per la colonna probabilmente inesistente "none":

 none=''